#region License
//
// The Open Toolkit Library License
//
// Copyright (c) 2006 - 2009 the Open Toolkit library.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights to 
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
// the Software, and to permit persons to whom the Software is furnished to do
// so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
// OTHER DEALINGS IN THE SOFTWARE.
//
#endregion

namespace OpenTK.Graphics
{
    using System;
    using System.Runtime.InteropServices;
    #pragma warning disable 3019
    #pragma warning disable 1591
    #pragma warning disable 1572
    #pragma warning disable 1573

    static partial class GL
    {

        public static partial class GL_3dfx
        {
            [AutoGenerated(Category = "3DfxTbuffer", Version = "1.2", EntryPoint = "glTbufferMask3DFX")]
            public static 
            void TbufferMask(Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTbufferMask3DFX((UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "3DfxTbuffer", Version = "1.2", EntryPoint = "glTbufferMask3DFX")]
            public static 
            void TbufferMask(UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTbufferMask3DFX((UInt32)mask);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Amd
        {
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glBeginPerfMonitorAMD")]
            public static 
            void BeginPerfMonitor(Int32 monitor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginPerfMonitorAMD((UInt32)monitor);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glBeginPerfMonitorAMD")]
            public static 
            void BeginPerfMonitor(UInt32 monitor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginPerfMonitorAMD((UInt32)monitor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdDrawBuffersBlend", Version = "2.0", EntryPoint = "glBlendEquationIndexedAMD")]
            public static 
            void BlendEquationIndexed(Int32 buf, AmdDrawBuffersBlend mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationIndexedAMD((UInt32)buf, (AmdDrawBuffersBlend)mode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdDrawBuffersBlend", Version = "2.0", EntryPoint = "glBlendEquationIndexedAMD")]
            public static 
            void BlendEquationIndexed(UInt32 buf, AmdDrawBuffersBlend mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationIndexedAMD((UInt32)buf, (AmdDrawBuffersBlend)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdDrawBuffersBlend", Version = "2.0", EntryPoint = "glBlendEquationSeparateIndexedAMD")]
            public static 
            void BlendEquationSeparateIndexed(Int32 buf, AmdDrawBuffersBlend modeRGB, AmdDrawBuffersBlend modeAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationSeparateIndexedAMD((UInt32)buf, (AmdDrawBuffersBlend)modeRGB, (AmdDrawBuffersBlend)modeAlpha);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdDrawBuffersBlend", Version = "2.0", EntryPoint = "glBlendEquationSeparateIndexedAMD")]
            public static 
            void BlendEquationSeparateIndexed(UInt32 buf, AmdDrawBuffersBlend modeRGB, AmdDrawBuffersBlend modeAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationSeparateIndexedAMD((UInt32)buf, (AmdDrawBuffersBlend)modeRGB, (AmdDrawBuffersBlend)modeAlpha);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdDrawBuffersBlend", Version = "2.0", EntryPoint = "glBlendFuncIndexedAMD")]
            public static 
            void BlendFuncIndexed(Int32 buf, AmdDrawBuffersBlend src, AmdDrawBuffersBlend dst)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncIndexedAMD((UInt32)buf, (AmdDrawBuffersBlend)src, (AmdDrawBuffersBlend)dst);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdDrawBuffersBlend", Version = "2.0", EntryPoint = "glBlendFuncIndexedAMD")]
            public static 
            void BlendFuncIndexed(UInt32 buf, AmdDrawBuffersBlend src, AmdDrawBuffersBlend dst)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncIndexedAMD((UInt32)buf, (AmdDrawBuffersBlend)src, (AmdDrawBuffersBlend)dst);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdDrawBuffersBlend", Version = "2.0", EntryPoint = "glBlendFuncSeparateIndexedAMD")]
            public static 
            void BlendFuncSeparateIndexed(Int32 buf, AmdDrawBuffersBlend srcRGB, AmdDrawBuffersBlend dstRGB, AmdDrawBuffersBlend srcAlpha, AmdDrawBuffersBlend dstAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateIndexedAMD((UInt32)buf, (AmdDrawBuffersBlend)srcRGB, (AmdDrawBuffersBlend)dstRGB, (AmdDrawBuffersBlend)srcAlpha, (AmdDrawBuffersBlend)dstAlpha);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdDrawBuffersBlend", Version = "2.0", EntryPoint = "glBlendFuncSeparateIndexedAMD")]
            public static 
            void BlendFuncSeparateIndexed(UInt32 buf, AmdDrawBuffersBlend srcRGB, AmdDrawBuffersBlend dstRGB, AmdDrawBuffersBlend srcAlpha, AmdDrawBuffersBlend dstAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateIndexedAMD((UInt32)buf, (AmdDrawBuffersBlend)srcRGB, (AmdDrawBuffersBlend)dstRGB, (AmdDrawBuffersBlend)srcAlpha, (AmdDrawBuffersBlend)dstAlpha);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            unsafe void DeletePerfMonitors(Int32 n, [Out] Int32* monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeletePerfMonitorsAMD((Int32)n, (UInt32*)monitors);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            void DeletePerfMonitors(Int32 n, [Out] Int32[] monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* monitors_ptr = monitors)
                    {
                        Delegates.glDeletePerfMonitorsAMD((Int32)n, (UInt32*)monitors_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            void DeletePerfMonitors(Int32 n, [Out] out Int32 monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* monitors_ptr = &monitors)
                    {
                        Delegates.glDeletePerfMonitorsAMD((Int32)n, (UInt32*)monitors_ptr);
                        monitors = *monitors_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            void DeletePerfMonitors(Int32 n, [Out] out UInt32 monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* monitors_ptr = &monitors)
                    {
                        Delegates.glDeletePerfMonitorsAMD((Int32)n, (UInt32*)monitors_ptr);
                        monitors = *monitors_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            unsafe void DeletePerfMonitors(Int32 n, [Out] UInt32* monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeletePerfMonitorsAMD((Int32)n, (UInt32*)monitors);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            void DeletePerfMonitors(Int32 n, [Out] UInt32[] monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* monitors_ptr = monitors)
                    {
                        Delegates.glDeletePerfMonitorsAMD((Int32)n, (UInt32*)monitors_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glEndPerfMonitorAMD")]
            public static 
            void EndPerfMonitor(Int32 monitor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndPerfMonitorAMD((UInt32)monitor);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glEndPerfMonitorAMD")]
            public static 
            void EndPerfMonitor(UInt32 monitor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndPerfMonitorAMD((UInt32)monitor);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            unsafe void GenPerfMonitors(Int32 n, [Out] Int32* monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenPerfMonitorsAMD((Int32)n, (UInt32*)monitors);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            void GenPerfMonitors(Int32 n, [Out] Int32[] monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* monitors_ptr = monitors)
                    {
                        Delegates.glGenPerfMonitorsAMD((Int32)n, (UInt32*)monitors_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            void GenPerfMonitors(Int32 n, [Out] out Int32 monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* monitors_ptr = &monitors)
                    {
                        Delegates.glGenPerfMonitorsAMD((Int32)n, (UInt32*)monitors_ptr);
                        monitors = *monitors_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            void GenPerfMonitors(Int32 n, [Out] out UInt32 monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* monitors_ptr = &monitors)
                    {
                        Delegates.glGenPerfMonitorsAMD((Int32)n, (UInt32*)monitors_ptr);
                        monitors = *monitors_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            unsafe void GenPerfMonitors(Int32 n, [Out] UInt32* monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenPerfMonitorsAMD((Int32)n, (UInt32*)monitors);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            void GenPerfMonitors(Int32 n, [Out] UInt32[] monitors)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* monitors_ptr = monitors)
                    {
                        Delegates.glGenPerfMonitorsAMD((Int32)n, (UInt32*)monitors_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            unsafe void GetPerfMonitorCounterData(Int32 monitor, AmdPerformanceMonitor pname, Int32 dataSize, [Out] Int32* data, [Out] Int32* bytesWritten)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterDataAMD((UInt32)monitor, (AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data, (Int32*)bytesWritten);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            unsafe void GetPerfMonitorCounterData(Int32 monitor, AmdPerformanceMonitor pname, Int32 dataSize, [Out] Int32[] data, [Out] Int32* bytesWritten)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Int32* data_ptr = data)
                {
                    Delegates.glGetPerfMonitorCounterDataAMD((UInt32)monitor, (AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data_ptr, (Int32*)bytesWritten);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            void GetPerfMonitorCounterData(Int32 monitor, AmdPerformanceMonitor pname, Int32 dataSize, [Out] out Int32 data, [Out] out Int32 bytesWritten)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    fixed (Int32* bytesWritten_ptr = &bytesWritten)
                    {
                        Delegates.glGetPerfMonitorCounterDataAMD((UInt32)monitor, (AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data_ptr, (Int32*)bytesWritten_ptr);
                        data = *data_ptr;
                        bytesWritten = *bytesWritten_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            void GetPerfMonitorCounterData(UInt32 monitor, AmdPerformanceMonitor pname, Int32 dataSize, [Out] out UInt32 data, [Out] out Int32 bytesWritten)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* data_ptr = &data)
                    fixed (Int32* bytesWritten_ptr = &bytesWritten)
                    {
                        Delegates.glGetPerfMonitorCounterDataAMD((UInt32)monitor, (AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data_ptr, (Int32*)bytesWritten_ptr);
                        data = *data_ptr;
                        bytesWritten = *bytesWritten_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            unsafe void GetPerfMonitorCounterData(UInt32 monitor, AmdPerformanceMonitor pname, Int32 dataSize, [Out] UInt32* data, [Out] Int32* bytesWritten)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterDataAMD((UInt32)monitor, (AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data, (Int32*)bytesWritten);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            unsafe void GetPerfMonitorCounterData(UInt32 monitor, AmdPerformanceMonitor pname, Int32 dataSize, [Out] UInt32[] data, [Out] Int32* bytesWritten)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (UInt32* data_ptr = data)
                {
                    Delegates.glGetPerfMonitorCounterDataAMD((UInt32)monitor, (AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data_ptr, (Int32*)bytesWritten);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, AmdPerformanceMonitor pname, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, AmdPerformanceMonitor pname, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, AmdPerformanceMonitor pname, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, AmdPerformanceMonitor pname, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, AmdPerformanceMonitor pname, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, AmdPerformanceMonitor pname, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, AmdPerformanceMonitor pname, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, AmdPerformanceMonitor pname, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, AmdPerformanceMonitor pname, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, AmdPerformanceMonitor pname, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (AmdPerformanceMonitor)pname, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            unsafe void GetPerfMonitorCounters(Int32 group, [Out] Int32* numCounters, [Out] Int32* maxActiveCounters, Int32 counterSize, [Out] Int32* counters)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCountersAMD((UInt32)group, (Int32*)numCounters, (Int32*)maxActiveCounters, (Int32)counterSize, (UInt32*)counters);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            unsafe void GetPerfMonitorCounters(Int32 group, [Out] Int32* numCounters, [Out] Int32* maxActiveCounters, Int32 counterSize, [Out] Int32[] counters)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Int32* counters_ptr = counters)
                {
                    Delegates.glGetPerfMonitorCountersAMD((UInt32)group, (Int32*)numCounters, (Int32*)maxActiveCounters, (Int32)counterSize, (UInt32*)counters_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            void GetPerfMonitorCounters(Int32 group, [Out] out Int32 numCounters, [Out] out Int32 maxActiveCounters, Int32 counterSize, [Out] out Int32 counters)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* numCounters_ptr = &numCounters)
                    fixed (Int32* maxActiveCounters_ptr = &maxActiveCounters)
                    fixed (Int32* counters_ptr = &counters)
                    {
                        Delegates.glGetPerfMonitorCountersAMD((UInt32)group, (Int32*)numCounters_ptr, (Int32*)maxActiveCounters_ptr, (Int32)counterSize, (UInt32*)counters_ptr);
                        numCounters = *numCounters_ptr;
                        maxActiveCounters = *maxActiveCounters_ptr;
                        counters = *counters_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            unsafe void GetPerfMonitorCounters(UInt32 group, [Out] Int32* numCounters, [Out] Int32* maxActiveCounters, Int32 counterSize, [Out] UInt32* counters)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCountersAMD((UInt32)group, (Int32*)numCounters, (Int32*)maxActiveCounters, (Int32)counterSize, (UInt32*)counters);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            unsafe void GetPerfMonitorCounters(UInt32 group, [Out] Int32* numCounters, [Out] Int32* maxActiveCounters, Int32 counterSize, [Out] UInt32[] counters)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (UInt32* counters_ptr = counters)
                {
                    Delegates.glGetPerfMonitorCountersAMD((UInt32)group, (Int32*)numCounters, (Int32*)maxActiveCounters, (Int32)counterSize, (UInt32*)counters_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            void GetPerfMonitorCounters(UInt32 group, [Out] out Int32 numCounters, [Out] out Int32 maxActiveCounters, Int32 counterSize, [Out] out UInt32 counters)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* numCounters_ptr = &numCounters)
                    fixed (Int32* maxActiveCounters_ptr = &maxActiveCounters)
                    fixed (UInt32* counters_ptr = &counters)
                    {
                        Delegates.glGetPerfMonitorCountersAMD((UInt32)group, (Int32*)numCounters_ptr, (Int32*)maxActiveCounters_ptr, (Int32)counterSize, (UInt32*)counters_ptr);
                        numCounters = *numCounters_ptr;
                        maxActiveCounters = *maxActiveCounters_ptr;
                        counters = *counters_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
            public static 
            unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder counterString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterStringAMD((UInt32)group, (UInt32)counter, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)counterString);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
            public static 
            void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder counterString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glGetPerfMonitorCounterStringAMD((UInt32)group, (UInt32)counter, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)counterString);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
            public static 
            unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder counterString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterStringAMD((UInt32)group, (UInt32)counter, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)counterString);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
            public static 
            void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder counterString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glGetPerfMonitorCounterStringAMD((UInt32)group, (UInt32)counter, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)counterString);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            unsafe void GetPerfMonitorGroup([Out] Int32* numGroups, Int32 groupsSize, [Out] Int32* groups)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorGroupsAMD((Int32*)numGroups, (Int32)groupsSize, (UInt32*)groups);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            unsafe void GetPerfMonitorGroup([Out] Int32* numGroups, Int32 groupsSize, [Out] Int32[] groups)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Int32* groups_ptr = groups)
                {
                    Delegates.glGetPerfMonitorGroupsAMD((Int32*)numGroups, (Int32)groupsSize, (UInt32*)groups_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            unsafe void GetPerfMonitorGroup([Out] Int32* numGroups, Int32 groupsSize, [Out] UInt32* groups)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorGroupsAMD((Int32*)numGroups, (Int32)groupsSize, (UInt32*)groups);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            unsafe void GetPerfMonitorGroup([Out] Int32* numGroups, Int32 groupsSize, [Out] UInt32[] groups)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (UInt32* groups_ptr = groups)
                {
                    Delegates.glGetPerfMonitorGroupsAMD((Int32*)numGroups, (Int32)groupsSize, (UInt32*)groups_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            void GetPerfMonitorGroup([Out] out Int32 numGroups, Int32 groupsSize, [Out] out Int32 groups)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* numGroups_ptr = &numGroups)
                    fixed (Int32* groups_ptr = &groups)
                    {
                        Delegates.glGetPerfMonitorGroupsAMD((Int32*)numGroups_ptr, (Int32)groupsSize, (UInt32*)groups_ptr);
                        numGroups = *numGroups_ptr;
                        groups = *groups_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            void GetPerfMonitorGroup([Out] out Int32 numGroups, Int32 groupsSize, [Out] out UInt32 groups)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* numGroups_ptr = &numGroups)
                    fixed (UInt32* groups_ptr = &groups)
                    {
                        Delegates.glGetPerfMonitorGroupsAMD((Int32*)numGroups_ptr, (Int32)groupsSize, (UInt32*)groups_ptr);
                        numGroups = *numGroups_ptr;
                        groups = *groups_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
            public static 
            unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder groupString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorGroupStringAMD((UInt32)group, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)groupString);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
            public static 
            void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder groupString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glGetPerfMonitorGroupStringAMD((UInt32)group, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)groupString);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
            public static 
            unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder groupString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorGroupStringAMD((UInt32)group, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)groupString);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
            public static 
            void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder groupString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glGetPerfMonitorGroupStringAMD((UInt32)group, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)groupString);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [Out] Int32* counterList)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSelectPerfMonitorCountersAMD((UInt32)monitor, (bool)enable, (UInt32)group, (Int32)numCounters, (UInt32*)counterList);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [Out] Int32[] counterList)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* counterList_ptr = counterList)
                    {
                        Delegates.glSelectPerfMonitorCountersAMD((UInt32)monitor, (bool)enable, (UInt32)group, (Int32)numCounters, (UInt32*)counterList_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [Out] out Int32 counterList)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* counterList_ptr = &counterList)
                    {
                        Delegates.glSelectPerfMonitorCountersAMD((UInt32)monitor, (bool)enable, (UInt32)group, (Int32)numCounters, (UInt32*)counterList_ptr);
                        counterList = *counterList_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [Out] out UInt32 counterList)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* counterList_ptr = &counterList)
                    {
                        Delegates.glSelectPerfMonitorCountersAMD((UInt32)monitor, (bool)enable, (UInt32)group, (Int32)numCounters, (UInt32*)counterList_ptr);
                        counterList = *counterList_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [Out] UInt32* counterList)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSelectPerfMonitorCountersAMD((UInt32)monitor, (bool)enable, (UInt32)group, (Int32)numCounters, (UInt32*)counterList);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AmdPerformanceMonitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [Out] UInt32[] counterList)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* counterList_ptr = counterList)
                    {
                        Delegates.glSelectPerfMonitorCountersAMD((UInt32)monitor, (bool)enable, (UInt32)group, (Int32)numCounters, (UInt32*)counterList_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdVertexShaderTesselator", Version = "2.0", EntryPoint = "glTessellationFactorAMD")]
            public static 
            void TessellationFactor(Single factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTessellationFactorAMD((Single)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AmdVertexShaderTesselator", Version = "2.0", EntryPoint = "glTessellationModeAMD")]
            public static 
            void TessellationMode(AmdVertexShaderTesselator mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTessellationModeAMD((AmdVertexShaderTesselator)mode);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Apple
        {
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glBindVertexArrayAPPLE")]
            public static 
            void BindVertexArray(Int32 array)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindVertexArrayAPPLE((UInt32)array);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glBindVertexArrayAPPLE")]
            public static 
            void BindVertexArray(UInt32 array)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindVertexArrayAPPLE((UInt32)array);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFlushBufferRange", Version = "1.5", EntryPoint = "glBufferParameteriAPPLE")]
            public static 
            void BufferParameter(BufferTarget target, BufferParameterApple pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBufferParameteriAPPLE((BufferTarget)target, (BufferParameterApple)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glDeleteFencesAPPLE")]
            public static 
            unsafe void DeleteFences(Int32 n, Int32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteFencesAPPLE((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glDeleteFencesAPPLE")]
            public static 
            void DeleteFences(Int32 n, Int32[] fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* fences_ptr = fences)
                    {
                        Delegates.glDeleteFencesAPPLE((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glDeleteFencesAPPLE")]
            public static 
            void DeleteFences(Int32 n, ref Int32 fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* fences_ptr = &fences)
                    {
                        Delegates.glDeleteFencesAPPLE((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glDeleteFencesAPPLE")]
            public static 
            void DeleteFences(Int32 n, ref UInt32 fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* fences_ptr = &fences)
                    {
                        Delegates.glDeleteFencesAPPLE((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glDeleteFencesAPPLE")]
            public static 
            unsafe void DeleteFences(Int32 n, UInt32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteFencesAPPLE((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glDeleteFencesAPPLE")]
            public static 
            void DeleteFences(Int32 n, UInt32[] fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* fences_ptr = fences)
                    {
                        Delegates.glDeleteFencesAPPLE((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glDeleteVertexArraysAPPLE")]
            public static 
            unsafe void DeleteVertexArrays(Int32 n, Int32* arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteVertexArraysAPPLE((Int32)n, (UInt32*)arrays);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glDeleteVertexArraysAPPLE")]
            public static 
            void DeleteVertexArrays(Int32 n, Int32[] arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* arrays_ptr = arrays)
                    {
                        Delegates.glDeleteVertexArraysAPPLE((Int32)n, (UInt32*)arrays_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glDeleteVertexArraysAPPLE")]
            public static 
            void DeleteVertexArrays(Int32 n, ref Int32 arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* arrays_ptr = &arrays)
                    {
                        Delegates.glDeleteVertexArraysAPPLE((Int32)n, (UInt32*)arrays_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glDeleteVertexArraysAPPLE")]
            public static 
            void DeleteVertexArrays(Int32 n, ref UInt32 arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* arrays_ptr = &arrays)
                    {
                        Delegates.glDeleteVertexArraysAPPLE((Int32)n, (UInt32*)arrays_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glDeleteVertexArraysAPPLE")]
            public static 
            unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteVertexArraysAPPLE((Int32)n, (UInt32*)arrays);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glDeleteVertexArraysAPPLE")]
            public static 
            void DeleteVertexArrays(Int32 n, UInt32[] arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* arrays_ptr = arrays)
                    {
                        Delegates.glDeleteVertexArraysAPPLE((Int32)n, (UInt32*)arrays_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glDisableVertexAttribAPPLE")]
            public static 
            void DisableVertexAttrib(Int32 index, AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableVertexAttribAPPLE((UInt32)index, (AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glDisableVertexAttribAPPLE")]
            public static 
            void DisableVertexAttrib(UInt32 index, AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableVertexAttribAPPLE((UInt32)index, (AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glDrawElementArrayAPPLE")]
            public static 
            void DrawElementArray(BeginMode mode, Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawElementArrayAPPLE((BeginMode)mode, (Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glDrawRangeElementArrayAPPLE")]
            public static 
            void DrawRangeElementArray(BeginMode mode, Int32 start, Int32 end, Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementArrayAPPLE((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glDrawRangeElementArrayAPPLE")]
            public static 
            void DrawRangeElementArray(BeginMode mode, UInt32 start, UInt32 end, Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementArrayAPPLE((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glElementPointerAPPLE")]
            public static 
            void ElementPointer<T1>(AppleElementArray type, [In, Out] ref T1 pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerAPPLE((AppleElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glElementPointerAPPLE")]
            public static 
            void ElementPointer<T1>(AppleElementArray type, [In, Out] T1[,,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerAPPLE((AppleElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glElementPointerAPPLE")]
            public static 
            void ElementPointer<T1>(AppleElementArray type, [In, Out] T1[,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerAPPLE((AppleElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glElementPointerAPPLE")]
            public static 
            void ElementPointer<T1>(AppleElementArray type, [In, Out] T1[] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerAPPLE((AppleElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glElementPointerAPPLE")]
            public static 
            void ElementPointer(AppleElementArray type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glElementPointerAPPLE((AppleElementArray)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glEnableVertexAttribAPPLE")]
            public static 
            void EnableVertexAttrib(Int32 index, AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableVertexAttribAPPLE((UInt32)index, (AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glEnableVertexAttribAPPLE")]
            public static 
            void EnableVertexAttrib(UInt32 index, AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableVertexAttribAPPLE((UInt32)index, (AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glFinishFenceAPPLE")]
            public static 
            void FinishFence(Int32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinishFenceAPPLE((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glFinishFenceAPPLE")]
            public static 
            void FinishFence(UInt32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinishFenceAPPLE((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glFinishObjectAPPLE")]
            public static 
            void FinishObject(AppleFence @object, Int32 name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinishObjectAPPLE((AppleFence)@object, (Int32)name);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFlushBufferRange", Version = "1.5", EntryPoint = "glFlushMappedBufferRangeAPPLE")]
            public static 
            void FlushMappedBufferRange(BufferTarget target, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushMappedBufferRangeAPPLE((BufferTarget)target, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange<T1>(Int32 length, [In, Out] ref T1 pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFlushVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange<T1>(Int32 length, [In, Out] T1[,,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFlushVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange<T1>(Int32 length, [In, Out] T1[,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFlushVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange<T1>(Int32 length, [In, Out] T1[] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFlushVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange(Int32 length, [Out] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            unsafe void GenFences(Int32 n, [Out] Int32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFencesAPPLE((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            void GenFences(Int32 n, [Out] Int32[] fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* fences_ptr = fences)
                    {
                        Delegates.glGenFencesAPPLE((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            void GenFences(Int32 n, [Out] out Int32 fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* fences_ptr = &fences)
                    {
                        Delegates.glGenFencesAPPLE((Int32)n, (UInt32*)fences_ptr);
                        fences = *fences_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            void GenFences(Int32 n, [Out] out UInt32 fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* fences_ptr = &fences)
                    {
                        Delegates.glGenFencesAPPLE((Int32)n, (UInt32*)fences_ptr);
                        fences = *fences_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            unsafe void GenFences(Int32 n, [Out] UInt32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFencesAPPLE((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            void GenFences(Int32 n, [Out] UInt32[] fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* fences_ptr = fences)
                    {
                        Delegates.glGenFencesAPPLE((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            unsafe void GenVertexArrays(Int32 n, [Out] Int32* arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenVertexArraysAPPLE((Int32)n, (UInt32*)arrays);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            void GenVertexArrays(Int32 n, [Out] Int32[] arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* arrays_ptr = arrays)
                    {
                        Delegates.glGenVertexArraysAPPLE((Int32)n, (UInt32*)arrays_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            void GenVertexArrays(Int32 n, [Out] out Int32 arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* arrays_ptr = &arrays)
                    {
                        Delegates.glGenVertexArraysAPPLE((Int32)n, (UInt32*)arrays_ptr);
                        arrays = *arrays_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            void GenVertexArrays(Int32 n, [Out] out UInt32 arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* arrays_ptr = &arrays)
                    {
                        Delegates.glGenVertexArraysAPPLE((Int32)n, (UInt32*)arrays_ptr);
                        arrays = *arrays_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            unsafe void GenVertexArrays(Int32 n, [Out] UInt32* arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenVertexArraysAPPLE((Int32)n, (UInt32*)arrays);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            void GenVertexArrays(Int32 n, [Out] UInt32[] arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* arrays_ptr = arrays)
                    {
                        Delegates.glGenVertexArraysAPPLE((Int32)n, (UInt32*)arrays_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            unsafe void GetObjectParameter(AppleObjectPurgeable objectType, Int32 name, AppleObjectPurgeable pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterivAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            void GetObjectParameter(AppleObjectPurgeable objectType, Int32 name, AppleObjectPurgeable pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterivAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            void GetObjectParameter(AppleObjectPurgeable objectType, Int32 name, AppleObjectPurgeable pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterivAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            unsafe void GetObjectParameter(AppleObjectPurgeable objectType, UInt32 name, AppleObjectPurgeable pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterivAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            void GetObjectParameter(AppleObjectPurgeable objectType, UInt32 name, AppleObjectPurgeable pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterivAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            void GetObjectParameter(AppleObjectPurgeable objectType, UInt32 name, AppleObjectPurgeable pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterivAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glGetTexParameterPointervAPPLE")]
            public static 
            void GetTexParameterPointer<T2>(AppleTextureRange target, AppleTextureRange pname, [In, Out] ref T2 @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTexParameterPointervAPPLE((AppleTextureRange)target, (AppleTextureRange)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glGetTexParameterPointervAPPLE")]
            public static 
            void GetTexParameterPointer<T2>(AppleTextureRange target, AppleTextureRange pname, [In, Out] T2[,,] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTexParameterPointervAPPLE((AppleTextureRange)target, (AppleTextureRange)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glGetTexParameterPointervAPPLE")]
            public static 
            void GetTexParameterPointer<T2>(AppleTextureRange target, AppleTextureRange pname, [In, Out] T2[,] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTexParameterPointervAPPLE((AppleTextureRange)target, (AppleTextureRange)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glGetTexParameterPointervAPPLE")]
            public static 
            void GetTexParameterPointer<T2>(AppleTextureRange target, AppleTextureRange pname, [In, Out] T2[] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTexParameterPointervAPPLE((AppleTextureRange)target, (AppleTextureRange)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glGetTexParameterPointervAPPLE")]
            public static 
            void GetTexParameterPointer(AppleTextureRange target, AppleTextureRange pname, [Out] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexParameterPointervAPPLE((AppleTextureRange)target, (AppleTextureRange)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glIsFenceAPPLE")]
            public static 
            bool IsFence(Int32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsFenceAPPLE((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glIsFenceAPPLE")]
            public static 
            bool IsFence(UInt32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsFenceAPPLE((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glIsVertexArrayAPPLE")]
            public static 
            bool IsVertexArray(Int32 array)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVertexArrayAPPLE((UInt32)array);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexArrayObject", Version = "1.2", EntryPoint = "glIsVertexArrayAPPLE")]
            public static 
            bool IsVertexArray(UInt32 array)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVertexArrayAPPLE((UInt32)array);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glIsVertexAttribEnabledAPPLE")]
            public static 
            bool IsVertexAttribEnabled(Int32 index, AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVertexAttribEnabledAPPLE((UInt32)index, (AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glIsVertexAttribEnabledAPPLE")]
            public static 
            bool IsVertexAttribEnabled(UInt32 index, AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVertexAttribEnabledAPPLE((UInt32)index, (AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1dAPPLE")]
            public static 
            unsafe void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, Double* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapVertexAttrib1dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1dAPPLE")]
            public static 
            void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, Double[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = points)
                    {
                        Delegates.glMapVertexAttrib1dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1dAPPLE")]
            public static 
            void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, ref Double points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = &points)
                    {
                        Delegates.glMapVertexAttrib1dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1dAPPLE")]
            public static 
            unsafe void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, Double* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapVertexAttrib1dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1dAPPLE")]
            public static 
            void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, Double[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = points)
                    {
                        Delegates.glMapVertexAttrib1dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1dAPPLE")]
            public static 
            void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, ref Double points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = &points)
                    {
                        Delegates.glMapVertexAttrib1dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1fAPPLE")]
            public static 
            void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glMapVertexAttrib1fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1fAPPLE")]
            public static 
            unsafe void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapVertexAttrib1fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1fAPPLE")]
            public static 
            void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glMapVertexAttrib1fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1fAPPLE")]
            public static 
            void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glMapVertexAttrib1fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1fAPPLE")]
            public static 
            unsafe void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapVertexAttrib1fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib1fAPPLE")]
            public static 
            void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glMapVertexAttrib1fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2dAPPLE")]
            public static 
            unsafe void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapVertexAttrib2dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2dAPPLE")]
            public static 
            void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = points)
                    {
                        Delegates.glMapVertexAttrib2dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2dAPPLE")]
            public static 
            void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, ref Double points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = &points)
                    {
                        Delegates.glMapVertexAttrib2dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2dAPPLE")]
            public static 
            unsafe void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapVertexAttrib2dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2dAPPLE")]
            public static 
            void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = points)
                    {
                        Delegates.glMapVertexAttrib2dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2dAPPLE")]
            public static 
            void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, ref Double points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = &points)
                    {
                        Delegates.glMapVertexAttrib2dAPPLE((UInt32)index, (UInt32)size, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2fAPPLE")]
            public static 
            void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glMapVertexAttrib2fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2fAPPLE")]
            public static 
            unsafe void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapVertexAttrib2fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2fAPPLE")]
            public static 
            void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glMapVertexAttrib2fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2fAPPLE")]
            public static 
            void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glMapVertexAttrib2fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2fAPPLE")]
            public static 
            unsafe void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapVertexAttrib2fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleVertexProgramEvaluators", Version = "1.5", EntryPoint = "glMapVertexAttrib2fAPPLE")]
            public static 
            void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glMapVertexAttrib2fAPPLE((UInt32)index, (UInt32)size, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawElementArrayAPPLE")]
            public static 
            unsafe void MultiDrawElementArray(BeginMode mode, Int32* first, Int32* count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawElementArrayAPPLE((BeginMode)mode, (Int32*)first, (Int32*)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawElementArrayAPPLE")]
            public static 
            void MultiDrawElementArray(BeginMode mode, Int32[] first, Int32[] count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* first_ptr = first)
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiDrawElementArrayAPPLE((BeginMode)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawElementArrayAPPLE")]
            public static 
            void MultiDrawElementArray(BeginMode mode, ref Int32 first, ref Int32 count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* first_ptr = &first)
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiDrawElementArrayAPPLE((BeginMode)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            unsafe void MultiDrawRangeElementArray(BeginMode mode, Int32 start, Int32 end, Int32* first, Int32* count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawRangeElementArrayAPPLE((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32*)first, (Int32*)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            void MultiDrawRangeElementArray(BeginMode mode, Int32 start, Int32 end, Int32[] first, Int32[] count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* first_ptr = first)
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiDrawRangeElementArrayAPPLE((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            void MultiDrawRangeElementArray(BeginMode mode, Int32 start, Int32 end, ref Int32 first, ref Int32 count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* first_ptr = &first)
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiDrawRangeElementArrayAPPLE((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            unsafe void MultiDrawRangeElementArray(BeginMode mode, UInt32 start, UInt32 end, Int32* first, Int32* count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawRangeElementArrayAPPLE((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32*)first, (Int32*)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            void MultiDrawRangeElementArray(BeginMode mode, UInt32 start, UInt32 end, Int32[] first, Int32[] count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* first_ptr = first)
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiDrawRangeElementArrayAPPLE((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleElementArray", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            void MultiDrawRangeElementArray(BeginMode mode, UInt32 start, UInt32 end, ref Int32 first, ref Int32 count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* first_ptr = &first)
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiDrawRangeElementArrayAPPLE((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glObjectPurgeableAPPLE")]
            public static 
            IntPtr ObjectPurgeable(AppleObjectPurgeable objectType, Int32 name, AppleObjectPurgeable option)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glObjectPurgeableAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)option);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glObjectPurgeableAPPLE")]
            public static 
            IntPtr ObjectPurgeable(AppleObjectPurgeable objectType, UInt32 name, AppleObjectPurgeable option)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glObjectPurgeableAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)option);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glObjectUnpurgeableAPPLE")]
            public static 
            IntPtr ObjectUnpurgeable(AppleObjectPurgeable objectType, Int32 name, AppleObjectPurgeable option)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glObjectUnpurgeableAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)option);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleObjectPurgeable", Version = "1.5", EntryPoint = "glObjectUnpurgeableAPPLE")]
            public static 
            IntPtr ObjectUnpurgeable(AppleObjectPurgeable objectType, UInt32 name, AppleObjectPurgeable option)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glObjectUnpurgeableAPPLE((AppleObjectPurgeable)objectType, (UInt32)name, (AppleObjectPurgeable)option);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glSetFenceAPPLE")]
            public static 
            void SetFence(Int32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetFenceAPPLE((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glSetFenceAPPLE")]
            public static 
            void SetFence(UInt32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetFenceAPPLE((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glTestFenceAPPLE")]
            public static 
            bool TestFence(Int32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glTestFenceAPPLE((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glTestFenceAPPLE")]
            public static 
            bool TestFence(UInt32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glTestFenceAPPLE((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glTestObjectAPPLE")]
            public static 
            bool TestObject(AppleFence @object, Int32 name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glTestObjectAPPLE((AppleFence)@object, (UInt32)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AppleFence", Version = "1.2", EntryPoint = "glTestObjectAPPLE")]
            public static 
            bool TestObject(AppleFence @object, UInt32 name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glTestObjectAPPLE((AppleFence)@object, (UInt32)name);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glTextureRangeAPPLE")]
            public static 
            void TextureRange<T2>(AppleTextureRange target, Int32 length, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureRangeAPPLE((AppleTextureRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glTextureRangeAPPLE")]
            public static 
            void TextureRange<T2>(AppleTextureRange target, Int32 length, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureRangeAPPLE((AppleTextureRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glTextureRangeAPPLE")]
            public static 
            void TextureRange<T2>(AppleTextureRange target, Int32 length, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureRangeAPPLE((AppleTextureRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glTextureRangeAPPLE")]
            public static 
            void TextureRange<T2>(AppleTextureRange target, Int32 length, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureRangeAPPLE((AppleTextureRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleTextureRange", Version = "1.2", EntryPoint = "glTextureRangeAPPLE")]
            public static 
            void TextureRange(AppleTextureRange target, Int32 length, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureRangeAPPLE((AppleTextureRange)target, (Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glVertexArrayParameteriAPPLE")]
            public static 
            void VertexArrayParameter(AppleVertexArrayRange pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayParameteriAPPLE((AppleVertexArrayRange)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [In, Out] ref T1 pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [In, Out] T1[,,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [In, Out] T1[,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [In, Out] T1[] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AppleVertexArrayRange", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange(Int32 length, [Out] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Arb
        {
            
        /// <summary>
        /// Select active texture unit
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies which texture unit to make active. The number of texture units is implementation dependent, but must be at least two. texture must be one of GL_TEXTURE, where i ranges from 0 to the larger of (GL_MAX_TEXTURE_COORDS - 1) and (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1). The initial value is GL_TEXTURE0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glActiveTextureARB")]
            public static 
            void ActiveTexture(TextureUnit texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glActiveTextureARB((TextureUnit)texture);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glAttachObjectARB")]
            public static 
            void AttachObject(Int32 containerObj, Int32 obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAttachObjectARB((UInt32)containerObj, (UInt32)obj);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glAttachObjectARB")]
            public static 
            void AttachObject(UInt32 containerObj, UInt32 obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAttachObjectARB((UInt32)containerObj, (UInt32)obj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delimit the boundaries of a query object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target type of query object established between glBeginQuery and the subsequent glEndQuery. The symbolic constant must be GL_SAMPLES_PASSED.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glBeginQueryARB")]
            public static 
            void BeginQuery(ArbOcclusionQuery target, Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginQueryARB((ArbOcclusionQuery)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delimit the boundaries of a query object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target type of query object established between glBeginQuery and the subsequent glEndQuery. The symbolic constant must be GL_SAMPLES_PASSED.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glBeginQueryARB")]
            public static 
            void BeginQuery(ArbOcclusionQuery target, UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginQueryARB((ArbOcclusionQuery)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Associates a generic vertex attribute index with a named attribute variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object in which the association is to be made.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be bound.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies a null terminated string containing the name of the vertex shader attribute variable to which index is to be bound.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexShader", Version = "1.2", EntryPoint = "glBindAttribLocationARB")]
            public static 
            void BindAttribLocation(Int32 programObj, Int32 index, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindAttribLocationARB((UInt32)programObj, (UInt32)index, (String)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Associates a generic vertex attribute index with a named attribute variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object in which the association is to be made.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be bound.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies a null terminated string containing the name of the vertex shader attribute variable to which index is to be bound.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexShader", Version = "1.2", EntryPoint = "glBindAttribLocationARB")]
            public static 
            void BindAttribLocation(UInt32 programObj, UInt32 index, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindAttribLocationARB((UInt32)programObj, (UInt32)index, (String)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Bind a named buffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the buffer object is bound. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of a buffer object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBindBufferARB")]
            public static 
            void BindBuffer(BufferTargetArb target, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferARB((BufferTargetArb)target, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Bind a named buffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the buffer object is bound. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of a buffer object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBindBufferARB")]
            public static 
            void BindBuffer(BufferTargetArb target, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferARB((BufferTargetArb)target, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glBindProgramARB")]
            public static 
            void BindProgram(AssemblyProgramTargetArb target, Int32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindProgramARB((AssemblyProgramTargetArb)target, (UInt32)program);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glBindProgramARB")]
            public static 
            void BindProgram(AssemblyProgramTargetArb target, UInt32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindProgramARB((AssemblyProgramTargetArb)target, (UInt32)program);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData<T2>(BufferTargetArb target, IntPtr size, [In, Out] ref T2 data, BufferUsageArb usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferDataARB((BufferTargetArb)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (BufferUsageArb)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData<T2>(BufferTargetArb target, IntPtr size, [In, Out] T2[,,] data, BufferUsageArb usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferDataARB((BufferTargetArb)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (BufferUsageArb)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData<T2>(BufferTargetArb target, IntPtr size, [In, Out] T2[,] data, BufferUsageArb usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferDataARB((BufferTargetArb)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (BufferUsageArb)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData<T2>(BufferTargetArb target, IntPtr size, [In, Out] T2[] data, BufferUsageArb usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferDataARB((BufferTargetArb)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (BufferUsageArb)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData(BufferTargetArb target, IntPtr size, IntPtr data, BufferUsageArb usage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBufferDataARB((BufferTargetArb)target, (IntPtr)size, (IntPtr)data, (BufferUsageArb)usage);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData<T3>(BufferTargetArb target, IntPtr offset, IntPtr size, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData<T3>(BufferTargetArb target, IntPtr offset, IntPtr size, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData<T3>(BufferTargetArb target, IntPtr offset, IntPtr size, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData<T3>(BufferTargetArb target, IntPtr offset, IntPtr size, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData(BufferTargetArb target, IntPtr offset, IntPtr size, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbColorBufferFloat", Version = "1.5", EntryPoint = "glClampColorARB")]
            public static 
            void ClampColor(ArbColorBufferFloat target, ArbColorBufferFloat clamp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClampColorARB((ArbColorBufferFloat)target, (ArbColorBufferFloat)clamp);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Select active texture unit
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies which texture unit to make active. The number of texture units is implementation dependent, but must be at least two. texture must be one of GL_TEXTURE, where i ranges from 0 to the value of GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value. The initial value is GL_TEXTURE0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glClientActiveTextureARB")]
            public static 
            void ClientActiveTexture(TextureUnit texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClientActiveTextureARB((TextureUnit)texture);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Compiles a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be compiled.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glCompileShaderARB")]
            public static 
            void CompileShader(Int32 shaderObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompileShaderARB((UInt32)shaderObj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Compiles a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be compiled.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glCompileShaderARB")]
            public static 
            void CompileShader(UInt32 shaderObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompileShaderARB((UInt32)shaderObj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D<T6>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] ref T6 data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage1DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D<T6>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T6[,,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage1DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D<T6>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T6[,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage1DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D<T6>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T6[] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage1DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexImage1DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] ref T7 data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage2DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T7[,,] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage2DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T7[,] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage2DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T7[] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage2DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexImage2DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] ref T8 data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage3DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T8[,,] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage3DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T8[,] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage3DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T8[] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage3DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexImage3DARB((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] ref T6 data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage1DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T6[,,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage1DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T6[,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage1DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T6[] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage1DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexSubImage1DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] ref T8 data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage2DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T8[,,] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage2DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T8[,] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage2DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T8[] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage2DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexSubImage2DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] ref T10 data)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage3DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T10[,,] data)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage3DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T10[,] data)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage3DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T10[] data)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage3DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexSubImage3DARB((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glCreateProgramObjectARB")]
            public static 
            Int32 CreateProgramObject()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCreateProgramObjectARB();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glCreateShaderObjectARB")]
            public static 
            Int32 CreateShaderObject(ArbShaderObjects shaderType)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCreateShaderObjectARB((ArbShaderObjects)shaderType);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glCurrentPaletteMatrixARB")]
            public static 
            void CurrentPaletteMatrix(Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCurrentPaletteMatrixARB((Int32)index);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glDeleteBuffersARB")]
            public static 
            unsafe void DeleteBuffers(Int32 n, Int32* buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteBuffersARB((Int32)n, (UInt32*)buffers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glDeleteBuffersARB")]
            public static 
            void DeleteBuffers(Int32 n, Int32[] buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* buffers_ptr = buffers)
                    {
                        Delegates.glDeleteBuffersARB((Int32)n, (UInt32*)buffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glDeleteBuffersARB")]
            public static 
            void DeleteBuffers(Int32 n, ref Int32 buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* buffers_ptr = &buffers)
                    {
                        Delegates.glDeleteBuffersARB((Int32)n, (UInt32*)buffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glDeleteBuffersARB")]
            public static 
            void DeleteBuffers(Int32 n, ref UInt32 buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* buffers_ptr = &buffers)
                    {
                        Delegates.glDeleteBuffersARB((Int32)n, (UInt32*)buffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glDeleteBuffersARB")]
            public static 
            unsafe void DeleteBuffers(Int32 n, UInt32* buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteBuffersARB((Int32)n, (UInt32*)buffers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glDeleteBuffersARB")]
            public static 
            void DeleteBuffers(Int32 n, UInt32[] buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* buffers_ptr = buffers)
                    {
                        Delegates.glDeleteBuffersARB((Int32)n, (UInt32*)buffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glDeleteObjectARB")]
            public static 
            void DeleteObject(Int32 obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteObjectARB((UInt32)obj);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glDeleteObjectARB")]
            public static 
            void DeleteObject(UInt32 obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteObjectARB((UInt32)obj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glDeleteProgramsARB")]
            public static 
            unsafe void DeleteProgram(Int32 n, Int32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteProgramsARB((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glDeleteProgramsARB")]
            public static 
            void DeleteProgram(Int32 n, Int32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = programs)
                    {
                        Delegates.glDeleteProgramsARB((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glDeleteProgramsARB")]
            public static 
            void DeleteProgram(Int32 n, ref Int32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = &programs)
                    {
                        Delegates.glDeleteProgramsARB((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glDeleteProgramsARB")]
            public static 
            void DeleteProgram(Int32 n, ref UInt32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = &programs)
                    {
                        Delegates.glDeleteProgramsARB((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glDeleteProgramsARB")]
            public static 
            unsafe void DeleteProgram(Int32 n, UInt32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteProgramsARB((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glDeleteProgramsARB")]
            public static 
            void DeleteProgram(Int32 n, UInt32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = programs)
                    {
                        Delegates.glDeleteProgramsARB((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glDeleteQueriesARB")]
            public static 
            unsafe void DeleteQueries(Int32 n, Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteQueriesARB((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glDeleteQueriesARB")]
            public static 
            void DeleteQueries(Int32 n, Int32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = ids)
                    {
                        Delegates.glDeleteQueriesARB((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glDeleteQueriesARB")]
            public static 
            void DeleteQueries(Int32 n, ref Int32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = &ids)
                    {
                        Delegates.glDeleteQueriesARB((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glDeleteQueriesARB")]
            public static 
            void DeleteQueries(Int32 n, ref UInt32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = &ids)
                    {
                        Delegates.glDeleteQueriesARB((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glDeleteQueriesARB")]
            public static 
            unsafe void DeleteQueries(Int32 n, UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteQueriesARB((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glDeleteQueriesARB")]
            public static 
            void DeleteQueries(Int32 n, UInt32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = ids)
                    {
                        Delegates.glDeleteQueriesARB((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glDetachObjectARB")]
            public static 
            void DetachObject(Int32 containerObj, Int32 attachedObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDetachObjectARB((UInt32)containerObj, (UInt32)attachedObj);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glDetachObjectARB")]
            public static 
            void DetachObject(UInt32 containerObj, UInt32 attachedObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDetachObjectARB((UInt32)containerObj, (UInt32)attachedObj);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glDisableVertexAttribArrayARB")]
            public static 
            void DisableVertexAttribArray(Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableVertexAttribArrayARB((UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glDisableVertexAttribArrayARB")]
            public static 
            void DisableVertexAttribArray(UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableVertexAttribArrayARB((UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbDrawInstanced", Version = "2.0", EntryPoint = "glDrawArraysInstancedARB")]
            public static 
            void DrawArraysInstanced(BeginMode mode, Int32 first, Int32 count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawArraysInstancedARB((BeginMode)mode, (Int32)first, (Int32)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbDrawBuffers", Version = "1.5", EntryPoint = "glDrawBuffersARB")]
            public static 
            unsafe void DrawBuffers(Int32 n, ArbDrawBuffers* bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawBuffersARB((Int32)n, (ArbDrawBuffers*)bufs);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbDrawBuffers", Version = "1.5", EntryPoint = "glDrawBuffersARB")]
            public static 
            void DrawBuffers(Int32 n, ArbDrawBuffers[] bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (ArbDrawBuffers* bufs_ptr = bufs)
                    {
                        Delegates.glDrawBuffersARB((Int32)n, (ArbDrawBuffers*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbDrawBuffers", Version = "1.5", EntryPoint = "glDrawBuffersARB")]
            public static 
            void DrawBuffers(Int32 n, ref ArbDrawBuffers bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (ArbDrawBuffers* bufs_ptr = &bufs)
                    {
                        Delegates.glDrawBuffersARB((Int32)n, (ArbDrawBuffers*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawElementsInstancedARB((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawElementsInstancedARB((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawElementsInstancedARB((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawElementsInstancedARB((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced(BeginMode mode, Int32 count, DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawElementsInstancedARB((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Enable or disable a generic vertex attribute array
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be enabled or disabled.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glEnableVertexAttribArrayARB")]
            public static 
            void EnableVertexAttribArray(Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableVertexAttribArrayARB((UInt32)index);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Enable or disable a generic vertex attribute array
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be enabled or disabled.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glEnableVertexAttribArrayARB")]
            public static 
            void EnableVertexAttribArray(UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableVertexAttribArrayARB((UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glEndQueryARB")]
            public static 
            void EndQuery(ArbOcclusionQuery target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndQueryARB((ArbOcclusionQuery)target);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbGeometryShader4", Version = "3.0", EntryPoint = "glFramebufferTextureARB")]
            public static 
            void FramebufferTexture(FramebufferTarget target, FramebufferAttachment attachment, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureARB((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbGeometryShader4", Version = "3.0", EntryPoint = "glFramebufferTextureARB")]
            public static 
            void FramebufferTexture(FramebufferTarget target, FramebufferAttachment attachment, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureARB((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbGeometryShader4", Version = "3.0", EntryPoint = "glFramebufferTextureFaceARB")]
            public static 
            void FramebufferTextureFace(FramebufferTarget target, FramebufferAttachment attachment, Int32 texture, Int32 level, TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureFaceARB((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbGeometryShader4", Version = "3.0", EntryPoint = "glFramebufferTextureFaceARB")]
            public static 
            void FramebufferTextureFace(FramebufferTarget target, FramebufferAttachment attachment, UInt32 texture, Int32 level, TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureFaceARB((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbGeometryShader4", Version = "3.0", EntryPoint = "glFramebufferTextureLayerARB")]
            public static 
            void FramebufferTextureLayer(FramebufferTarget target, FramebufferAttachment attachment, Int32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureLayerARB((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbGeometryShader4", Version = "3.0", EntryPoint = "glFramebufferTextureLayerARB")]
            public static 
            void FramebufferTextureLayer(FramebufferTarget target, FramebufferAttachment attachment, UInt32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureLayerARB((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            unsafe void GenBuffers(Int32 n, [Out] Int32* buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenBuffersARB((Int32)n, (UInt32*)buffers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            void GenBuffers(Int32 n, [Out] Int32[] buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* buffers_ptr = buffers)
                    {
                        Delegates.glGenBuffersARB((Int32)n, (UInt32*)buffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            void GenBuffers(Int32 n, [Out] out Int32 buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* buffers_ptr = &buffers)
                    {
                        Delegates.glGenBuffersARB((Int32)n, (UInt32*)buffers_ptr);
                        buffers = *buffers_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            void GenBuffers(Int32 n, [Out] out UInt32 buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* buffers_ptr = &buffers)
                    {
                        Delegates.glGenBuffersARB((Int32)n, (UInt32*)buffers_ptr);
                        buffers = *buffers_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            unsafe void GenBuffers(Int32 n, [Out] UInt32* buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenBuffersARB((Int32)n, (UInt32*)buffers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            void GenBuffers(Int32 n, [Out] UInt32[] buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* buffers_ptr = buffers)
                    {
                        Delegates.glGenBuffersARB((Int32)n, (UInt32*)buffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            unsafe void GenProgram(Int32 n, [Out] Int32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenProgramsARB((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            void GenProgram(Int32 n, [Out] Int32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = programs)
                    {
                        Delegates.glGenProgramsARB((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            void GenProgram(Int32 n, [Out] out Int32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = &programs)
                    {
                        Delegates.glGenProgramsARB((Int32)n, (UInt32*)programs_ptr);
                        programs = *programs_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            void GenProgram(Int32 n, [Out] out UInt32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = &programs)
                    {
                        Delegates.glGenProgramsARB((Int32)n, (UInt32*)programs_ptr);
                        programs = *programs_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            unsafe void GenProgram(Int32 n, [Out] UInt32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenProgramsARB((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            void GenProgram(Int32 n, [Out] UInt32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = programs)
                    {
                        Delegates.glGenProgramsARB((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            unsafe void GenQueries(Int32 n, [Out] Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenQueriesARB((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            void GenQueries(Int32 n, [Out] Int32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = ids)
                    {
                        Delegates.glGenQueriesARB((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            void GenQueries(Int32 n, [Out] out Int32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = &ids)
                    {
                        Delegates.glGenQueriesARB((Int32)n, (UInt32*)ids_ptr);
                        ids = *ids_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            void GenQueries(Int32 n, [Out] out UInt32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = &ids)
                    {
                        Delegates.glGenQueriesARB((Int32)n, (UInt32*)ids_ptr);
                        ids = *ids_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            unsafe void GenQueries(Int32 n, [Out] UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenQueriesARB((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            void GenQueries(Int32 n, [Out] UInt32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = ids)
                    {
                        Delegates.glGenQueriesARB((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns information about an active attribute variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the attribute variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the attribute variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexShader", Version = "1.2", EntryPoint = "glGetActiveAttribARB")]
            public static 
            unsafe void GetActiveAttrib(Int32 programObj, Int32 index, Int32 maxLength, [Out] Int32* length, [Out] Int32* size, [Out] ArbVertexShader* type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveAttribARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length, (Int32*)size, (ArbVertexShader*)type, (System.Text.StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns information about an active attribute variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the attribute variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the attribute variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexShader", Version = "1.2", EntryPoint = "glGetActiveAttribARB")]
            public static 
            void GetActiveAttrib(Int32 programObj, Int32 index, Int32 maxLength, [Out] out Int32 length, [Out] out Int32 size, [Out] out ArbVertexShader type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (ArbVertexShader* type_ptr = &type)
                    {
                        Delegates.glGetActiveAttribARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length_ptr, (Int32*)size_ptr, (ArbVertexShader*)type_ptr, (System.Text.StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns information about an active attribute variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the attribute variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the attribute variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexShader", Version = "1.2", EntryPoint = "glGetActiveAttribARB")]
            public static 
            unsafe void GetActiveAttrib(UInt32 programObj, UInt32 index, Int32 maxLength, [Out] Int32* length, [Out] Int32* size, [Out] ArbVertexShader* type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveAttribARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length, (Int32*)size, (ArbVertexShader*)type, (System.Text.StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns information about an active attribute variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the attribute variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the attribute variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexShader", Version = "1.2", EntryPoint = "glGetActiveAttribARB")]
            public static 
            void GetActiveAttrib(UInt32 programObj, UInt32 index, Int32 maxLength, [Out] out Int32 length, [Out] out Int32 size, [Out] out ArbVertexShader type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (ArbVertexShader* type_ptr = &type)
                    {
                        Delegates.glGetActiveAttribARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length_ptr, (Int32*)size_ptr, (ArbVertexShader*)type_ptr, (System.Text.StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns information about an active uniform variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetActiveUniformARB")]
            public static 
            unsafe void GetActiveUniform(Int32 programObj, Int32 index, Int32 maxLength, [Out] Int32* length, [Out] Int32* size, [Out] ArbShaderObjects* type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveUniformARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length, (Int32*)size, (ArbShaderObjects*)type, (System.Text.StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns information about an active uniform variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetActiveUniformARB")]
            public static 
            void GetActiveUniform(Int32 programObj, Int32 index, Int32 maxLength, [Out] out Int32 length, [Out] out Int32 size, [Out] out ArbShaderObjects type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (ArbShaderObjects* type_ptr = &type)
                    {
                        Delegates.glGetActiveUniformARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length_ptr, (Int32*)size_ptr, (ArbShaderObjects*)type_ptr, (System.Text.StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns information about an active uniform variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetActiveUniformARB")]
            public static 
            unsafe void GetActiveUniform(UInt32 programObj, UInt32 index, Int32 maxLength, [Out] Int32* length, [Out] Int32* size, [Out] ArbShaderObjects* type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveUniformARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length, (Int32*)size, (ArbShaderObjects*)type, (System.Text.StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns information about an active uniform variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetActiveUniformARB")]
            public static 
            void GetActiveUniform(UInt32 programObj, UInt32 index, Int32 maxLength, [Out] out Int32 length, [Out] out Int32 size, [Out] out ArbShaderObjects type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (ArbShaderObjects* type_ptr = &type)
                    {
                        Delegates.glGetActiveUniformARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length_ptr, (Int32*)size_ptr, (ArbShaderObjects*)type_ptr, (System.Text.StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            unsafe void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [Out] Int32* count, [Out] Int32* obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetAttachedObjectsARB((UInt32)containerObj, (Int32)maxCount, (Int32*)count, (UInt32*)obj);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            unsafe void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [Out] Int32* count, [Out] Int32[] obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Int32* obj_ptr = obj)
                {
                    Delegates.glGetAttachedObjectsARB((UInt32)containerObj, (Int32)maxCount, (Int32*)count, (UInt32*)obj_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [Out] out Int32 count, [Out] out Int32 obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = &count)
                    fixed (Int32* obj_ptr = &obj)
                    {
                        Delegates.glGetAttachedObjectsARB((UInt32)containerObj, (Int32)maxCount, (Int32*)count_ptr, (UInt32*)obj_ptr);
                        count = *count_ptr;
                        obj = *obj_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            unsafe void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [Out] Int32* count, [Out] UInt32* obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetAttachedObjectsARB((UInt32)containerObj, (Int32)maxCount, (Int32*)count, (UInt32*)obj);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            unsafe void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [Out] Int32* count, [Out] UInt32[] obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (UInt32* obj_ptr = obj)
                {
                    Delegates.glGetAttachedObjectsARB((UInt32)containerObj, (Int32)maxCount, (Int32*)count, (UInt32*)obj_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [Out] out Int32 count, [Out] out UInt32 obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = &count)
                    fixed (UInt32* obj_ptr = &obj)
                    {
                        Delegates.glGetAttachedObjectsARB((UInt32)containerObj, (Int32)maxCount, (Int32*)count_ptr, (UInt32*)obj_ptr);
                        count = *count_ptr;
                        obj = *obj_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the location of an attribute variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Points to a null terminated string containing the name of the attribute variable whose location is to be queried.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexShader", Version = "1.2", EntryPoint = "glGetAttribLocationARB")]
            public static 
            Int32 GetAttribLocation(Int32 programObj, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetAttribLocationARB((UInt32)programObj, (String)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the location of an attribute variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Points to a null terminated string containing the name of the attribute variable whose location is to be queried.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexShader", Version = "1.2", EntryPoint = "glGetAttribLocationARB")]
            public static 
            Int32 GetAttribLocation(UInt32 programObj, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetAttribLocationARB((UInt32)programObj, (String)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferParameterivARB")]
            public static 
            unsafe void GetBufferParameter(ArbVertexBufferObject target, BufferParameterNameArb pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBufferParameterivARB((ArbVertexBufferObject)target, (BufferParameterNameArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferParameterivARB")]
            public static 
            void GetBufferParameter(ArbVertexBufferObject target, BufferParameterNameArb pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetBufferParameterivARB((ArbVertexBufferObject)target, (BufferParameterNameArb)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferParameterivARB")]
            public static 
            void GetBufferParameter(ArbVertexBufferObject target, BufferParameterNameArb pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetBufferParameterivARB((ArbVertexBufferObject)target, (BufferParameterNameArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferPointervARB")]
            public static 
            void GetBufferPointer<T2>(ArbVertexBufferObject target, BufferPointerNameArb pname, [In, Out] ref T2 @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferPointervARB((ArbVertexBufferObject)target, (BufferPointerNameArb)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferPointervARB")]
            public static 
            void GetBufferPointer<T2>(ArbVertexBufferObject target, BufferPointerNameArb pname, [In, Out] T2[,,] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferPointervARB((ArbVertexBufferObject)target, (BufferPointerNameArb)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferPointervARB")]
            public static 
            void GetBufferPointer<T2>(ArbVertexBufferObject target, BufferPointerNameArb pname, [In, Out] T2[,] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferPointervARB((ArbVertexBufferObject)target, (BufferPointerNameArb)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferPointervARB")]
            public static 
            void GetBufferPointer<T2>(ArbVertexBufferObject target, BufferPointerNameArb pname, [In, Out] T2[] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferPointervARB((ArbVertexBufferObject)target, (BufferPointerNameArb)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferPointervARB")]
            public static 
            void GetBufferPointer(ArbVertexBufferObject target, BufferPointerNameArb pname, [Out] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBufferPointervARB((ArbVertexBufferObject)target, (BufferPointerNameArb)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData<T3>(BufferTargetArb target, IntPtr offset, IntPtr size, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData<T3>(BufferTargetArb target, IntPtr offset, IntPtr size, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData<T3>(BufferTargetArb target, IntPtr offset, IntPtr size, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData<T3>(BufferTargetArb target, IntPtr offset, IntPtr size, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData(BufferTargetArb target, IntPtr offset, IntPtr size, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBufferSubDataARB((BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage<T2>(TextureTarget target, Int32 level, [In, Out] ref T2 img)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTexImageARB((TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage<T2>(TextureTarget target, Int32 level, [In, Out] T2[,,] img)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTexImageARB((TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage<T2>(TextureTarget target, Int32 level, [In, Out] T2[,] img)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTexImageARB((TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage<T2>(TextureTarget target, Int32 level, [In, Out] T2[] img)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTexImageARB((TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTextureCompression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage(TextureTarget target, Int32 level, [Out] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCompressedTexImageARB((TextureTarget)target, (Int32)level, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetHandleARB")]
            public static 
            Int32 GetHandle(ArbShaderObjects pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetHandleARB((ArbShaderObjects)pname);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetInfoLogARB")]
            public static 
            unsafe void GetInfoLog(Int32 obj, Int32 maxLength, [Out] Int32* length, [Out] System.Text.StringBuilder infoLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInfoLogARB((UInt32)obj, (Int32)maxLength, (Int32*)length, (System.Text.StringBuilder)infoLog);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetInfoLogARB")]
            public static 
            void GetInfoLog(Int32 obj, Int32 maxLength, [Out] out Int32 length, [Out] System.Text.StringBuilder infoLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glGetInfoLogARB((UInt32)obj, (Int32)maxLength, (Int32*)length_ptr, (System.Text.StringBuilder)infoLog);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetInfoLogARB")]
            public static 
            unsafe void GetInfoLog(UInt32 obj, Int32 maxLength, [Out] Int32* length, [Out] System.Text.StringBuilder infoLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInfoLogARB((UInt32)obj, (Int32)maxLength, (Int32*)length, (System.Text.StringBuilder)infoLog);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetInfoLogARB")]
            public static 
            void GetInfoLog(UInt32 obj, Int32 maxLength, [Out] out Int32 length, [Out] System.Text.StringBuilder infoLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glGetInfoLogARB((UInt32)obj, (Int32)maxLength, (Int32*)length_ptr, (System.Text.StringBuilder)infoLog);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            void GetObjectParameter(Int32 obj, ArbShaderObjects pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterfvARB((UInt32)obj, (ArbShaderObjects)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            unsafe void GetObjectParameter(Int32 obj, ArbShaderObjects pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterfvARB((UInt32)obj, (ArbShaderObjects)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            void GetObjectParameter(Int32 obj, ArbShaderObjects pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterfvARB((UInt32)obj, (ArbShaderObjects)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            void GetObjectParameter(UInt32 obj, ArbShaderObjects pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterfvARB((UInt32)obj, (ArbShaderObjects)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            unsafe void GetObjectParameter(UInt32 obj, ArbShaderObjects pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterfvARB((UInt32)obj, (ArbShaderObjects)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            void GetObjectParameter(UInt32 obj, ArbShaderObjects pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterfvARB((UInt32)obj, (ArbShaderObjects)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            unsafe void GetObjectParameter(Int32 obj, ArbShaderObjects pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterivARB((UInt32)obj, (ArbShaderObjects)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            void GetObjectParameter(Int32 obj, ArbShaderObjects pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterivARB((UInt32)obj, (ArbShaderObjects)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            void GetObjectParameter(Int32 obj, ArbShaderObjects pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterivARB((UInt32)obj, (ArbShaderObjects)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            unsafe void GetObjectParameter(UInt32 obj, ArbShaderObjects pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterivARB((UInt32)obj, (ArbShaderObjects)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            void GetObjectParameter(UInt32 obj, ArbShaderObjects pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterivARB((UInt32)obj, (ArbShaderObjects)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            void GetObjectParameter(UInt32 obj, ArbShaderObjects pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterivARB((UInt32)obj, (ArbShaderObjects)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            unsafe void GetProgramEnvParameter(ArbVertexProgram target, Int32 index, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            void GetProgramEnvParameter(ArbVertexProgram target, Int32 index, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            void GetProgramEnvParameter(ArbVertexProgram target, Int32 index, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            unsafe void GetProgramEnvParameter(ArbVertexProgram target, UInt32 index, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            void GetProgramEnvParameter(ArbVertexProgram target, UInt32 index, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            void GetProgramEnvParameter(ArbVertexProgram target, UInt32 index, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            void GetProgramEnvParameter(ArbVertexProgram target, Int32 index, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            unsafe void GetProgramEnvParameter(ArbVertexProgram target, Int32 index, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            void GetProgramEnvParameter(ArbVertexProgram target, Int32 index, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            void GetProgramEnvParameter(ArbVertexProgram target, UInt32 index, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            unsafe void GetProgramEnvParameter(ArbVertexProgram target, UInt32 index, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            void GetProgramEnvParameter(ArbVertexProgram target, UInt32 index, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramivARB")]
            public static 
            unsafe void GetProgram(AssemblyProgramTargetArb target, AssemblyProgramParameterArb pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramivARB((AssemblyProgramTargetArb)target, (AssemblyProgramParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramivARB")]
            public static 
            void GetProgram(AssemblyProgramTargetArb target, AssemblyProgramParameterArb pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramivARB((AssemblyProgramTargetArb)target, (AssemblyProgramParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            unsafe void GetProgramLocalParameter(ArbVertexProgram target, Int32 index, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            void GetProgramLocalParameter(ArbVertexProgram target, Int32 index, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            void GetProgramLocalParameter(ArbVertexProgram target, Int32 index, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            unsafe void GetProgramLocalParameter(ArbVertexProgram target, UInt32 index, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            void GetProgramLocalParameter(ArbVertexProgram target, UInt32 index, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            void GetProgramLocalParameter(ArbVertexProgram target, UInt32 index, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterdvARB((ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            void GetProgramLocalParameter(ArbVertexProgram target, Int32 index, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            unsafe void GetProgramLocalParameter(ArbVertexProgram target, Int32 index, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            void GetProgramLocalParameter(ArbVertexProgram target, Int32 index, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            void GetProgramLocalParameter(ArbVertexProgram target, UInt32 index, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            unsafe void GetProgramLocalParameter(ArbVertexProgram target, UInt32 index, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            void GetProgramLocalParameter(ArbVertexProgram target, UInt32 index, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterfvARB((ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramStringARB")]
            public static 
            void GetProgramString<T2>(AssemblyProgramTargetArb target, AssemblyProgramParameterArb pname, [In, Out] ref T2 @string)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetProgramStringARB((AssemblyProgramTargetArb)target, (AssemblyProgramParameterArb)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramStringARB")]
            public static 
            void GetProgramString<T2>(AssemblyProgramTargetArb target, AssemblyProgramParameterArb pname, [In, Out] T2[,,] @string)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetProgramStringARB((AssemblyProgramTargetArb)target, (AssemblyProgramParameterArb)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramStringARB")]
            public static 
            void GetProgramString<T2>(AssemblyProgramTargetArb target, AssemblyProgramParameterArb pname, [In, Out] T2[,] @string)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetProgramStringARB((AssemblyProgramTargetArb)target, (AssemblyProgramParameterArb)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramStringARB")]
            public static 
            void GetProgramString<T2>(AssemblyProgramTargetArb target, AssemblyProgramParameterArb pname, [In, Out] T2[] @string)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetProgramStringARB((AssemblyProgramTargetArb)target, (AssemblyProgramParameterArb)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetProgramStringARB")]
            public static 
            void GetProgramString(AssemblyProgramTargetArb target, AssemblyProgramParameterArb pname, [Out] IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramStringARB((AssemblyProgramTargetArb)target, (AssemblyProgramParameterArb)pname, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryivARB")]
            public static 
            unsafe void GetQuery(ArbOcclusionQuery target, ArbOcclusionQuery pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryivARB((ArbOcclusionQuery)target, (ArbOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryivARB")]
            public static 
            void GetQuery(ArbOcclusionQuery target, ArbOcclusionQuery pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetQueryivARB((ArbOcclusionQuery)target, (ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryivARB")]
            public static 
            void GetQuery(ArbOcclusionQuery target, ArbOcclusionQuery pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryivARB((ArbOcclusionQuery)target, (ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            unsafe void GetQueryObject(Int32 id, ArbOcclusionQuery pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectivARB((UInt32)id, (ArbOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            void GetQueryObject(Int32 id, ArbOcclusionQuery pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectivARB((UInt32)id, (ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            void GetQueryObject(Int32 id, ArbOcclusionQuery pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectivARB((UInt32)id, (ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            unsafe void GetQueryObject(UInt32 id, ArbOcclusionQuery pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectivARB((UInt32)id, (ArbOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            void GetQueryObject(UInt32 id, ArbOcclusionQuery pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectivARB((UInt32)id, (ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            void GetQueryObject(UInt32 id, ArbOcclusionQuery pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectivARB((UInt32)id, (ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectuivARB")]
            public static 
            void GetQueryObject(UInt32 id, ArbOcclusionQuery pname, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectuivARB((UInt32)id, (ArbOcclusionQuery)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectuivARB")]
            public static 
            unsafe void GetQueryObject(UInt32 id, ArbOcclusionQuery pname, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectuivARB((UInt32)id, (ArbOcclusionQuery)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glGetQueryObjectuivARB")]
            public static 
            void GetQueryObject(UInt32 id, ArbOcclusionQuery pname, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectuivARB((UInt32)id, (ArbOcclusionQuery)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the source code string from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned source code string.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in source (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="source">
        /// <para>
        /// Specifies an array of characters that is used to return the source code string.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetShaderSourceARB")]
            public static 
            unsafe void GetShaderSource(Int32 obj, Int32 maxLength, [Out] Int32* length, [Out] System.Text.StringBuilder source)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetShaderSourceARB((UInt32)obj, (Int32)maxLength, (Int32*)length, (System.Text.StringBuilder)source);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the source code string from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned source code string.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in source (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="source">
        /// <para>
        /// Specifies an array of characters that is used to return the source code string.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetShaderSourceARB")]
            public static 
            void GetShaderSource(Int32 obj, Int32 maxLength, [Out] out Int32 length, [Out] System.Text.StringBuilder source)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glGetShaderSourceARB((UInt32)obj, (Int32)maxLength, (Int32*)length_ptr, (System.Text.StringBuilder)source);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the source code string from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned source code string.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in source (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="source">
        /// <para>
        /// Specifies an array of characters that is used to return the source code string.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetShaderSourceARB")]
            public static 
            unsafe void GetShaderSource(UInt32 obj, Int32 maxLength, [Out] Int32* length, [Out] System.Text.StringBuilder source)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetShaderSourceARB((UInt32)obj, (Int32)maxLength, (Int32*)length, (System.Text.StringBuilder)source);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the source code string from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned source code string.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in source (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="source">
        /// <para>
        /// Specifies an array of characters that is used to return the source code string.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetShaderSourceARB")]
            public static 
            void GetShaderSource(UInt32 obj, Int32 maxLength, [Out] out Int32 length, [Out] System.Text.StringBuilder source)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glGetShaderSourceARB((UInt32)obj, (Int32)maxLength, (Int32*)length_ptr, (System.Text.StringBuilder)source);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            void GetUniform(Int32 programObj, Int32 location, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformfvARB((UInt32)programObj, (Int32)location, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            unsafe void GetUniform(Int32 programObj, Int32 location, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformfvARB((UInt32)programObj, (Int32)location, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            void GetUniform(Int32 programObj, Int32 location, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetUniformfvARB((UInt32)programObj, (Int32)location, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            void GetUniform(UInt32 programObj, Int32 location, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformfvARB((UInt32)programObj, (Int32)location, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            unsafe void GetUniform(UInt32 programObj, Int32 location, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformfvARB((UInt32)programObj, (Int32)location, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            void GetUniform(UInt32 programObj, Int32 location, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetUniformfvARB((UInt32)programObj, (Int32)location, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            unsafe void GetUniform(Int32 programObj, Int32 location, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformivARB((UInt32)programObj, (Int32)location, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            void GetUniform(Int32 programObj, Int32 location, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetUniformivARB((UInt32)programObj, (Int32)location, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            void GetUniform(Int32 programObj, Int32 location, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformivARB((UInt32)programObj, (Int32)location, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            unsafe void GetUniform(UInt32 programObj, Int32 location, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformivARB((UInt32)programObj, (Int32)location, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            void GetUniform(UInt32 programObj, Int32 location, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetUniformivARB((UInt32)programObj, (Int32)location, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            void GetUniform(UInt32 programObj, Int32 location, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformivARB((UInt32)programObj, (Int32)location, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the location of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Points to a null terminated string containing the name of the uniform variable whose location is to be queried.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformLocationARB")]
            public static 
            Int32 GetUniformLocation(Int32 programObj, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetUniformLocationARB((UInt32)programObj, (String)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the location of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Points to a null terminated string containing the name of the uniform variable whose location is to be queried.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glGetUniformLocationARB")]
            public static 
            Int32 GetUniformLocation(UInt32 programObj, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetUniformLocationARB((UInt32)programObj, (String)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribdvARB((UInt32)index, (VertexAttribParameterArb)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribdvARB((UInt32)index, (VertexAttribParameterArb)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribdvARB((UInt32)index, (VertexAttribParameterArb)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribdvARB((UInt32)index, (VertexAttribParameterArb)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribdvARB((UInt32)index, (VertexAttribParameterArb)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribdvARB((UInt32)index, (VertexAttribParameterArb)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribfvARB((UInt32)index, (VertexAttribParameterArb)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribfvARB((UInt32)index, (VertexAttribParameterArb)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribfvARB((UInt32)index, (VertexAttribParameterArb)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribfvARB((UInt32)index, (VertexAttribParameterArb)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribfvARB((UInt32)index, (VertexAttribParameterArb)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribfvARB((UInt32)index, (VertexAttribParameterArb)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribivARB((UInt32)index, (VertexAttribParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribivARB((UInt32)index, (VertexAttribParameterArb)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            void GetVertexAttrib(Int32 index, VertexAttribParameterArb pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribivARB((UInt32)index, (VertexAttribParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribivARB((UInt32)index, (VertexAttribParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribivARB((UInt32)index, (VertexAttribParameterArb)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            void GetVertexAttrib(UInt32 index, VertexAttribParameterArb pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribivARB((UInt32)index, (VertexAttribParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, VertexAttribPointerParameterArb pname, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, VertexAttribPointerParameterArb pname, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, VertexAttribPointerParameterArb pname, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, VertexAttribPointerParameterArb pname, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer(Int32 index, VertexAttribPointerParameterArb pname, [Out] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, VertexAttribPointerParameterArb pname, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, VertexAttribPointerParameterArb pname, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, VertexAttribPointerParameterArb pname, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, VertexAttribPointerParameterArb pname, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer(UInt32 index, VertexAttribPointerParameterArb pname, [Out] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribPointervARB((UInt32)index, (VertexAttribPointerParameterArb)pname, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if a name corresponds to a buffer object
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specifies a value that may be the name of a buffer object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glIsBufferARB")]
            public static 
            bool IsBuffer(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsBufferARB((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if a name corresponds to a buffer object
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specifies a value that may be the name of a buffer object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glIsBufferARB")]
            public static 
            bool IsBuffer(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsBufferARB((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glIsProgramARB")]
            public static 
            bool IsProgram(Int32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsProgramARB((UInt32)program);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glIsProgramARB")]
            public static 
            bool IsProgram(UInt32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsProgramARB((UInt32)program);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if a name corresponds to a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a query object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glIsQueryARB")]
            public static 
            bool IsQuery(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsQueryARB((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if a name corresponds to a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a query object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbOcclusionQuery", Version = "1.5", EntryPoint = "glIsQueryARB")]
            public static 
            bool IsQuery(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsQueryARB((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Links a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be linked.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glLinkProgramARB")]
            public static 
            void LinkProgram(Int32 programObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLinkProgramARB((UInt32)programObj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Links a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be linked.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glLinkProgramARB")]
            public static 
            void LinkProgram(UInt32 programObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLinkProgramARB((UInt32)programObj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glLoadTransposeMatrixdARB")]
            public static 
            unsafe void LoadTransposeMatrix(Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadTransposeMatrixdARB((Double*)m);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glLoadTransposeMatrixdARB")]
            public static 
            void LoadTransposeMatrix(Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glLoadTransposeMatrixdARB((Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glLoadTransposeMatrixdARB")]
            public static 
            void LoadTransposeMatrix(ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glLoadTransposeMatrixdARB((Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glLoadTransposeMatrixfARB")]
            public static 
            void LoadTransposeMatrix(ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glLoadTransposeMatrixfARB((Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glLoadTransposeMatrixfARB")]
            public static 
            unsafe void LoadTransposeMatrix(Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadTransposeMatrixfARB((Single*)m);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glLoadTransposeMatrixfARB")]
            public static 
            void LoadTransposeMatrix(Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glLoadTransposeMatrixfARB((Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Map a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object being mapped. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="access">
        /// <para>
        /// Specifies the access policy, indicating whether it will be possible to read from, write to, or both read from and write to the buffer object's mapped data store. The symbolic constant must be GL_READ_ONLY, GL_WRITE_ONLY, or GL_READ_WRITE.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glMapBufferARB")]
            public static 
            unsafe IntPtr MapBuffer(BufferTargetArb target, ArbVertexBufferObject access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapBufferARB((BufferTargetArb)target, (ArbVertexBufferObject)access);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer<T3>(Int32 size, ArbMatrixPalette type, Int32 stride, [In, Out] ref T3 pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMatrixIndexPointerARB((Int32)size, (ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer<T3>(Int32 size, ArbMatrixPalette type, Int32 stride, [In, Out] T3[,,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMatrixIndexPointerARB((Int32)size, (ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer<T3>(Int32 size, ArbMatrixPalette type, Int32 stride, [In, Out] T3[,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMatrixIndexPointerARB((Int32)size, (ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer<T3>(Int32 size, ArbMatrixPalette type, Int32 stride, [In, Out] T3[] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMatrixIndexPointerARB((Int32)size, (ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer(Int32 size, ArbMatrixPalette type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixIndexPointerARB((Int32)size, (ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexubvARB")]
            public static 
            unsafe void MatrixIndex(Int32 size, Byte* indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixIndexubvARB((Int32)size, (Byte*)indices);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexubvARB")]
            public static 
            void MatrixIndex(Int32 size, Byte[] indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* indices_ptr = indices)
                    {
                        Delegates.glMatrixIndexubvARB((Int32)size, (Byte*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexubvARB")]
            public static 
            void MatrixIndex(Int32 size, ref Byte indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* indices_ptr = &indices)
                    {
                        Delegates.glMatrixIndexubvARB((Int32)size, (Byte*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexuivARB")]
            public static 
            unsafe void MatrixIndex(Int32 size, Int32* indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixIndexuivARB((Int32)size, (UInt32*)indices);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexuivARB")]
            public static 
            void MatrixIndex(Int32 size, Int32[] indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* indices_ptr = indices)
                    {
                        Delegates.glMatrixIndexuivARB((Int32)size, (UInt32*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexuivARB")]
            public static 
            void MatrixIndex(Int32 size, ref Int32 indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* indices_ptr = &indices)
                    {
                        Delegates.glMatrixIndexuivARB((Int32)size, (UInt32*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexuivARB")]
            public static 
            void MatrixIndex(Int32 size, ref UInt32 indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* indices_ptr = &indices)
                    {
                        Delegates.glMatrixIndexuivARB((Int32)size, (UInt32*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexuivARB")]
            public static 
            unsafe void MatrixIndex(Int32 size, UInt32* indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixIndexuivARB((Int32)size, (UInt32*)indices);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexuivARB")]
            public static 
            void MatrixIndex(Int32 size, UInt32[] indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* indices_ptr = indices)
                    {
                        Delegates.glMatrixIndexuivARB((Int32)size, (UInt32*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexusvARB")]
            public static 
            unsafe void MatrixIndex(Int32 size, Int16* indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixIndexusvARB((Int32)size, (UInt16*)indices);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexusvARB")]
            public static 
            void MatrixIndex(Int32 size, Int16[] indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* indices_ptr = indices)
                    {
                        Delegates.glMatrixIndexusvARB((Int32)size, (UInt16*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexusvARB")]
            public static 
            void MatrixIndex(Int32 size, ref Int16 indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* indices_ptr = &indices)
                    {
                        Delegates.glMatrixIndexusvARB((Int32)size, (UInt16*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexusvARB")]
            public static 
            void MatrixIndex(Int32 size, ref UInt16 indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* indices_ptr = &indices)
                    {
                        Delegates.glMatrixIndexusvARB((Int32)size, (UInt16*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexusvARB")]
            public static 
            unsafe void MatrixIndex(Int32 size, UInt16* indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixIndexusvARB((Int32)size, (UInt16*)indices);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMatrixPalette", Version = "1.1", EntryPoint = "glMatrixIndexusvARB")]
            public static 
            void MatrixIndex(Int32 size, UInt16[] indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* indices_ptr = indices)
                    {
                        Delegates.glMatrixIndexusvARB((Int32)size, (UInt16*)indices_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1dARB")]
            public static 
            void MultiTexCoord1(TextureUnit target, Double s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1dARB((TextureUnit)target, (Double)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1dvARB")]
            public static 
            unsafe void MultiTexCoord1(TextureUnit target, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1dvARB((TextureUnit)target, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1fARB")]
            public static 
            void MultiTexCoord1(TextureUnit target, Single s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1fARB((TextureUnit)target, (Single)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1fvARB")]
            public static 
            unsafe void MultiTexCoord1(TextureUnit target, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1fvARB((TextureUnit)target, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1iARB")]
            public static 
            void MultiTexCoord1(TextureUnit target, Int32 s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1iARB((TextureUnit)target, (Int32)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1ivARB")]
            public static 
            unsafe void MultiTexCoord1(TextureUnit target, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1ivARB((TextureUnit)target, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1sARB")]
            public static 
            void MultiTexCoord1(TextureUnit target, Int16 s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1sARB((TextureUnit)target, (Int16)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1svARB")]
            public static 
            unsafe void MultiTexCoord1(TextureUnit target, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1svARB((TextureUnit)target, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2dARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, Double s, Double t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2dARB((TextureUnit)target, (Double)s, (Double)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2dvARB")]
            public static 
            unsafe void MultiTexCoord2(TextureUnit target, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2dvARB((TextureUnit)target, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2dvARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2dvARB((TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2dvARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2dvARB((TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2fARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, Single s, Single t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2fARB((TextureUnit)target, (Single)s, (Single)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2fvARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2fvARB((TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2fvARB")]
            public static 
            unsafe void MultiTexCoord2(TextureUnit target, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2fvARB((TextureUnit)target, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2fvARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2fvARB((TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2iARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, Int32 s, Int32 t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2iARB((TextureUnit)target, (Int32)s, (Int32)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2ivARB")]
            public static 
            unsafe void MultiTexCoord2(TextureUnit target, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2ivARB((TextureUnit)target, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2ivARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2ivARB((TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2ivARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2ivARB((TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2sARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, Int16 s, Int16 t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2sARB((TextureUnit)target, (Int16)s, (Int16)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2svARB")]
            public static 
            unsafe void MultiTexCoord2(TextureUnit target, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2svARB((TextureUnit)target, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2svARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2svARB((TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2svARB")]
            public static 
            void MultiTexCoord2(TextureUnit target, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2svARB((TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3dARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, Double s, Double t, Double r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3dARB((TextureUnit)target, (Double)s, (Double)t, (Double)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3dvARB")]
            public static 
            unsafe void MultiTexCoord3(TextureUnit target, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3dvARB((TextureUnit)target, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3dvARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3dvARB((TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3dvARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3dvARB((TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3fARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, Single s, Single t, Single r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3fARB((TextureUnit)target, (Single)s, (Single)t, (Single)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3fvARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3fvARB((TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3fvARB")]
            public static 
            unsafe void MultiTexCoord3(TextureUnit target, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3fvARB((TextureUnit)target, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3fvARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3fvARB((TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3iARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, Int32 s, Int32 t, Int32 r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3iARB((TextureUnit)target, (Int32)s, (Int32)t, (Int32)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3ivARB")]
            public static 
            unsafe void MultiTexCoord3(TextureUnit target, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3ivARB((TextureUnit)target, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3ivARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3ivARB((TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3ivARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3ivARB((TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3sARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, Int16 s, Int16 t, Int16 r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3sARB((TextureUnit)target, (Int16)s, (Int16)t, (Int16)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3svARB")]
            public static 
            unsafe void MultiTexCoord3(TextureUnit target, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3svARB((TextureUnit)target, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3svARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3svARB((TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3svARB")]
            public static 
            void MultiTexCoord3(TextureUnit target, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3svARB((TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4dARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, Double s, Double t, Double r, Double q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4dARB((TextureUnit)target, (Double)s, (Double)t, (Double)r, (Double)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4dvARB")]
            public static 
            unsafe void MultiTexCoord4(TextureUnit target, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4dvARB((TextureUnit)target, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4dvARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4dvARB((TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4dvARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4dvARB((TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4fARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, Single s, Single t, Single r, Single q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4fARB((TextureUnit)target, (Single)s, (Single)t, (Single)r, (Single)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4fvARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4fvARB((TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4fvARB")]
            public static 
            unsafe void MultiTexCoord4(TextureUnit target, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4fvARB((TextureUnit)target, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4fvARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4fvARB((TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4iARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, Int32 s, Int32 t, Int32 r, Int32 q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4iARB((TextureUnit)target, (Int32)s, (Int32)t, (Int32)r, (Int32)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4ivARB")]
            public static 
            unsafe void MultiTexCoord4(TextureUnit target, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4ivARB((TextureUnit)target, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4ivARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4ivARB((TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4ivARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4ivARB((TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4sARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, Int16 s, Int16 t, Int16 r, Int16 q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4sARB((TextureUnit)target, (Int16)s, (Int16)t, (Int16)r, (Int16)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4svARB")]
            public static 
            unsafe void MultiTexCoord4(TextureUnit target, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4svARB((TextureUnit)target, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4svARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4svARB((TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4svARB")]
            public static 
            void MultiTexCoord4(TextureUnit target, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4svARB((TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glMultTransposeMatrixdARB")]
            public static 
            unsafe void MultTransposeMatrix(Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultTransposeMatrixdARB((Double*)m);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glMultTransposeMatrixdARB")]
            public static 
            void MultTransposeMatrix(Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMultTransposeMatrixdARB((Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glMultTransposeMatrixdARB")]
            public static 
            void MultTransposeMatrix(ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMultTransposeMatrixdARB((Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glMultTransposeMatrixfARB")]
            public static 
            void MultTransposeMatrix(ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMultTransposeMatrixfARB((Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glMultTransposeMatrixfARB")]
            public static 
            unsafe void MultTransposeMatrix(Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultTransposeMatrixfARB((Single*)m);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbTransposeMatrix", Version = "1.2", EntryPoint = "glMultTransposeMatrixfARB")]
            public static 
            void MultTransposeMatrix(Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMultTransposeMatrixfARB((Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbPointParameters", Version = "1.0", EntryPoint = "glPointParameterfARB")]
            public static 
            void PointParameter(ArbPointParameters pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfARB((ArbPointParameters)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbPointParameters", Version = "1.0", EntryPoint = "glPointParameterfvARB")]
            public static 
            unsafe void PointParameter(ArbPointParameters pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfvARB((ArbPointParameters)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbPointParameters", Version = "1.0", EntryPoint = "glPointParameterfvARB")]
            public static 
            void PointParameter(ArbPointParameters pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glPointParameterfvARB((ArbPointParameters)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4dARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4dARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4dARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4dARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4dvARB")]
            public static 
            unsafe void ProgramEnvParameter4(AssemblyProgramTargetArb target, Int32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4dvARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, Int32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4dvARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, Int32 index, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4dvARB")]
            public static 
            unsafe void ProgramEnvParameter4(AssemblyProgramTargetArb target, UInt32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4dvARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, UInt32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4dvARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, UInt32 index, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4fARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4fARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4fARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4fARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4fvARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, Int32 index, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4fvARB")]
            public static 
            unsafe void ProgramEnvParameter4(AssemblyProgramTargetArb target, Int32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4fvARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, Int32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4fvARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, UInt32 index, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4fvARB")]
            public static 
            unsafe void ProgramEnvParameter4(AssemblyProgramTargetArb target, UInt32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramEnvParameter4fvARB")]
            public static 
            void ProgramEnvParameter4(AssemblyProgramTargetArb target, UInt32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4dARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4dARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4dARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4dARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4dvARB")]
            public static 
            unsafe void ProgramLocalParameter4(AssemblyProgramTargetArb target, Int32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4dvARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, Int32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4dvARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, Int32 index, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4dvARB")]
            public static 
            unsafe void ProgramLocalParameter4(AssemblyProgramTargetArb target, UInt32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4dvARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, UInt32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4dvARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, UInt32 index, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameter4dvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4fARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4fARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4fARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4fARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4fvARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, Int32 index, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4fvARB")]
            public static 
            unsafe void ProgramLocalParameter4(AssemblyProgramTargetArb target, Int32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4fvARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, Int32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4fvARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, UInt32 index, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4fvARB")]
            public static 
            unsafe void ProgramLocalParameter4(AssemblyProgramTargetArb target, UInt32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramLocalParameter4fvARB")]
            public static 
            void ProgramLocalParameter4(AssemblyProgramTargetArb target, UInt32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameter4fvARB((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbGeometryShader4", Version = "3.0", EntryPoint = "glProgramParameteriARB")]
            public static 
            void ProgramParameter(Int32 program, ArbGeometryShader4 pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameteriARB((UInt32)program, (ArbGeometryShader4)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbGeometryShader4", Version = "3.0", EntryPoint = "glProgramParameteriARB")]
            public static 
            void ProgramParameter(UInt32 program, ArbGeometryShader4 pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameteriARB((UInt32)program, (ArbGeometryShader4)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramStringARB")]
            public static 
            void ProgramString<T3>(AssemblyProgramTargetArb target, ArbVertexProgram format, Int32 len, [In, Out] ref T3 @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glProgramStringARB((AssemblyProgramTargetArb)target, (ArbVertexProgram)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramStringARB")]
            public static 
            void ProgramString<T3>(AssemblyProgramTargetArb target, ArbVertexProgram format, Int32 len, [In, Out] T3[,,] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glProgramStringARB((AssemblyProgramTargetArb)target, (ArbVertexProgram)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramStringARB")]
            public static 
            void ProgramString<T3>(AssemblyProgramTargetArb target, ArbVertexProgram format, Int32 len, [In, Out] T3[,] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glProgramStringARB((AssemblyProgramTargetArb)target, (ArbVertexProgram)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramStringARB")]
            public static 
            void ProgramString<T3>(AssemblyProgramTargetArb target, ArbVertexProgram format, Int32 len, [In, Out] T3[] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glProgramStringARB((AssemblyProgramTargetArb)target, (ArbVertexProgram)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glProgramStringARB")]
            public static 
            void ProgramString(AssemblyProgramTargetArb target, ArbVertexProgram format, Int32 len, IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramStringARB((AssemblyProgramTargetArb)target, (ArbVertexProgram)format, (Int32)len, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify multisample coverage parameters
        /// </summary>
        /// <param name="value">
        /// <para>
        /// Specify a single floating-point sample coverage value. The value is clamped to the range [0 ,1]. The initial value is 1.0.
        /// </para>
        /// </param>
        /// <param name="invert">
        /// <para>
        /// Specify a single boolean value representing if the coverage masks should be inverted. GL_TRUE and GL_FALSE are accepted. The initial value is GL_FALSE.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbMultisample", Version = "1.2", EntryPoint = "glSampleCoverageARB")]
            public static 
            void SampleCoverage(Single value, bool invert)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleCoverageARB((Single)value, (bool)invert);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replaces the source code in a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the handle of the shader object whose source code is to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements in the string and length arrays.
        /// </para>
        /// </param>
        /// <param name="string">
        /// <para>
        /// Specifies an array of pointers to strings containing the source code to be loaded into the shader.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies an array of string lengths.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glShaderSourceARB")]
            public static 
            unsafe void ShaderSource(Int32 shaderObj, Int32 count, String[] @string, Int32* length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderSourceARB((UInt32)shaderObj, (Int32)count, (String[])@string, (Int32*)length);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replaces the source code in a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the handle of the shader object whose source code is to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements in the string and length arrays.
        /// </para>
        /// </param>
        /// <param name="string">
        /// <para>
        /// Specifies an array of pointers to strings containing the source code to be loaded into the shader.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies an array of string lengths.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glShaderSourceARB")]
            public static 
            void ShaderSource(Int32 shaderObj, Int32 count, String[] @string, ref Int32 length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glShaderSourceARB((UInt32)shaderObj, (Int32)count, (String[])@string, (Int32*)length_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replaces the source code in a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the handle of the shader object whose source code is to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements in the string and length arrays.
        /// </para>
        /// </param>
        /// <param name="string">
        /// <para>
        /// Specifies an array of pointers to strings containing the source code to be loaded into the shader.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies an array of string lengths.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glShaderSourceARB")]
            public static 
            unsafe void ShaderSource(UInt32 shaderObj, Int32 count, String[] @string, Int32* length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderSourceARB((UInt32)shaderObj, (Int32)count, (String[])@string, (Int32*)length);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Replaces the source code in a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the handle of the shader object whose source code is to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements in the string and length arrays.
        /// </para>
        /// </param>
        /// <param name="string">
        /// <para>
        /// Specifies an array of pointers to strings containing the source code to be loaded into the shader.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies an array of string lengths.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glShaderSourceARB")]
            public static 
            void ShaderSource(UInt32 shaderObj, Int32 count, String[] @string, ref Int32 length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glShaderSourceARB((UInt32)shaderObj, (Int32)count, (String[])@string, (Int32*)length_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbTextureBufferObject", Version = "3.0", EntryPoint = "glTexBufferARB")]
            public static 
            void TexBuffer(TextureTarget target, ArbTextureBufferObject internalformat, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBufferARB((TextureTarget)target, (ArbTextureBufferObject)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbTextureBufferObject", Version = "3.0", EntryPoint = "glTexBufferARB")]
            public static 
            void TexBuffer(TextureTarget target, ArbTextureBufferObject internalformat, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBufferARB((TextureTarget)target, (ArbTextureBufferObject)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform1fARB")]
            public static 
            void Uniform1(Int32 location, Single v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1fARB((Int32)location, (Single)v0);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform1fvARB")]
            public static 
            void Uniform1(Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glUniform1fvARB((Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform1fvARB")]
            public static 
            unsafe void Uniform1(Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1fvARB((Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform1fvARB")]
            public static 
            void Uniform1(Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glUniform1fvARB((Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform1iARB")]
            public static 
            void Uniform1(Int32 location, Int32 v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1iARB((Int32)location, (Int32)v0);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform1ivARB")]
            public static 
            unsafe void Uniform1(Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1ivARB((Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform1ivARB")]
            public static 
            void Uniform1(Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glUniform1ivARB((Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform1ivARB")]
            public static 
            void Uniform1(Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glUniform1ivARB((Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform2fARB")]
            public static 
            void Uniform2(Int32 location, Single v0, Single v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2fARB((Int32)location, (Single)v0, (Single)v1);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform2fvARB")]
            public static 
            void Uniform2(Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glUniform2fvARB((Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform2fvARB")]
            public static 
            unsafe void Uniform2(Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2fvARB((Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform2fvARB")]
            public static 
            void Uniform2(Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glUniform2fvARB((Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform2iARB")]
            public static 
            void Uniform2(Int32 location, Int32 v0, Int32 v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2iARB((Int32)location, (Int32)v0, (Int32)v1);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform2ivARB")]
            public static 
            unsafe void Uniform2(Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2ivARB((Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform2ivARB")]
            public static 
            void Uniform2(Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glUniform2ivARB((Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform3fARB")]
            public static 
            void Uniform3(Int32 location, Single v0, Single v1, Single v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3fARB((Int32)location, (Single)v0, (Single)v1, (Single)v2);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform3fvARB")]
            public static 
            void Uniform3(Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glUniform3fvARB((Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform3fvARB")]
            public static 
            unsafe void Uniform3(Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3fvARB((Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform3fvARB")]
            public static 
            void Uniform3(Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glUniform3fvARB((Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform3iARB")]
            public static 
            void Uniform3(Int32 location, Int32 v0, Int32 v1, Int32 v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3iARB((Int32)location, (Int32)v0, (Int32)v1, (Int32)v2);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform3ivARB")]
            public static 
            unsafe void Uniform3(Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3ivARB((Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform3ivARB")]
            public static 
            void Uniform3(Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glUniform3ivARB((Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform3ivARB")]
            public static 
            void Uniform3(Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glUniform3ivARB((Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform4fARB")]
            public static 
            void Uniform4(Int32 location, Single v0, Single v1, Single v2, Single v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4fARB((Int32)location, (Single)v0, (Single)v1, (Single)v2, (Single)v3);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform4fvARB")]
            public static 
            void Uniform4(Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glUniform4fvARB((Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform4fvARB")]
            public static 
            unsafe void Uniform4(Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4fvARB((Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform4fvARB")]
            public static 
            void Uniform4(Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glUniform4fvARB((Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform4iARB")]
            public static 
            void Uniform4(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4iARB((Int32)location, (Int32)v0, (Int32)v1, (Int32)v2, (Int32)v3);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform4ivARB")]
            public static 
            unsafe void Uniform4(Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4ivARB((Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform4ivARB")]
            public static 
            void Uniform4(Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glUniform4ivARB((Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniform4ivARB")]
            public static 
            void Uniform4(Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glUniform4ivARB((Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix2fvARB")]
            public static 
            void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glUniformMatrix2fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix2fvARB")]
            public static 
            unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformMatrix2fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix2fvARB")]
            public static 
            void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glUniformMatrix2fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix3fvARB")]
            public static 
            void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glUniformMatrix3fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix3fvARB")]
            public static 
            unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformMatrix3fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix3fvARB")]
            public static 
            void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glUniformMatrix3fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix4fvARB")]
            public static 
            void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glUniformMatrix4fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix4fvARB")]
            public static 
            unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformMatrix4fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUniformMatrix4fvARB")]
            public static 
            void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glUniformMatrix4fvARB((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBufferObject", Version = "1.2", EntryPoint = "glUnmapBufferARB")]
            public static 
            bool UnmapBuffer(BufferTargetArb target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glUnmapBufferARB((BufferTargetArb)target);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUseProgramObjectARB")]
            public static 
            void UseProgramObject(Int32 programObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUseProgramObjectARB((UInt32)programObj);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glUseProgramObjectARB")]
            public static 
            void UseProgramObject(UInt32 programObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUseProgramObjectARB((UInt32)programObj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Validates a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be validated.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glValidateProgramARB")]
            public static 
            void ValidateProgram(Int32 programObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glValidateProgramARB((UInt32)programObj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Validates a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be validated.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbShaderObjects", Version = "1.2", EntryPoint = "glValidateProgramARB")]
            public static 
            void ValidateProgram(UInt32 programObj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glValidateProgramARB((UInt32)programObj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1dARB")]
            public static 
            void VertexAttrib1(Int32 index, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1dARB((UInt32)index, (Double)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1dARB")]
            public static 
            void VertexAttrib1(UInt32 index, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1dARB((UInt32)index, (Double)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1dvARB")]
            public static 
            unsafe void VertexAttrib1(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1dvARB((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1dvARB")]
            public static 
            unsafe void VertexAttrib1(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1dvARB((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1fARB")]
            public static 
            void VertexAttrib1(Int32 index, Single x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1fARB((UInt32)index, (Single)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1fARB")]
            public static 
            void VertexAttrib1(UInt32 index, Single x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1fARB((UInt32)index, (Single)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1fvARB")]
            public static 
            unsafe void VertexAttrib1(Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1fvARB((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1fvARB")]
            public static 
            unsafe void VertexAttrib1(UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1fvARB((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1sARB")]
            public static 
            void VertexAttrib1(Int32 index, Int16 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1sARB((UInt32)index, (Int16)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1sARB")]
            public static 
            void VertexAttrib1(UInt32 index, Int16 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1sARB((UInt32)index, (Int16)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1svARB")]
            public static 
            unsafe void VertexAttrib1(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1svARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib1svARB")]
            public static 
            unsafe void VertexAttrib1(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1svARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2dARB")]
            public static 
            void VertexAttrib2(Int32 index, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2dARB((UInt32)index, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2dARB")]
            public static 
            void VertexAttrib2(UInt32 index, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2dARB((UInt32)index, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2dvARB")]
            public static 
            unsafe void VertexAttrib2(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2dvARB((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2dvARB")]
            public static 
            void VertexAttrib2(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2dvARB")]
            public static 
            void VertexAttrib2(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2dvARB")]
            public static 
            unsafe void VertexAttrib2(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2dvARB((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2dvARB")]
            public static 
            void VertexAttrib2(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2dvARB")]
            public static 
            void VertexAttrib2(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2fARB")]
            public static 
            void VertexAttrib2(Int32 index, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2fARB((UInt32)index, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2fARB")]
            public static 
            void VertexAttrib2(UInt32 index, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2fARB((UInt32)index, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2fvARB")]
            public static 
            void VertexAttrib2(Int32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2fvARB")]
            public static 
            unsafe void VertexAttrib2(Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2fvARB((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2fvARB")]
            public static 
            void VertexAttrib2(Int32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2fvARB")]
            public static 
            void VertexAttrib2(UInt32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2fvARB")]
            public static 
            unsafe void VertexAttrib2(UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2fvARB((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2fvARB")]
            public static 
            void VertexAttrib2(UInt32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2sARB")]
            public static 
            void VertexAttrib2(Int32 index, Int16 x, Int16 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2sARB((UInt32)index, (Int16)x, (Int16)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2sARB")]
            public static 
            void VertexAttrib2(UInt32 index, Int16 x, Int16 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2sARB((UInt32)index, (Int16)x, (Int16)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2svARB")]
            public static 
            unsafe void VertexAttrib2(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2svARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2svARB")]
            public static 
            void VertexAttrib2(Int32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2svARB")]
            public static 
            void VertexAttrib2(Int32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2svARB")]
            public static 
            unsafe void VertexAttrib2(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2svARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2svARB")]
            public static 
            void VertexAttrib2(UInt32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib2svARB")]
            public static 
            void VertexAttrib2(UInt32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3dARB")]
            public static 
            void VertexAttrib3(Int32 index, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3dARB((UInt32)index, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3dARB")]
            public static 
            void VertexAttrib3(UInt32 index, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3dARB((UInt32)index, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3dvARB")]
            public static 
            unsafe void VertexAttrib3(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3dvARB((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3dvARB")]
            public static 
            void VertexAttrib3(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3dvARB")]
            public static 
            void VertexAttrib3(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3dvARB")]
            public static 
            unsafe void VertexAttrib3(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3dvARB((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3dvARB")]
            public static 
            void VertexAttrib3(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3dvARB")]
            public static 
            void VertexAttrib3(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3fARB")]
            public static 
            void VertexAttrib3(Int32 index, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3fARB((UInt32)index, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3fARB")]
            public static 
            void VertexAttrib3(UInt32 index, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3fARB((UInt32)index, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3fvARB")]
            public static 
            void VertexAttrib3(Int32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3fvARB")]
            public static 
            unsafe void VertexAttrib3(Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3fvARB((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3fvARB")]
            public static 
            void VertexAttrib3(Int32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3fvARB")]
            public static 
            void VertexAttrib3(UInt32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3fvARB")]
            public static 
            unsafe void VertexAttrib3(UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3fvARB((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3fvARB")]
            public static 
            void VertexAttrib3(UInt32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3sARB")]
            public static 
            void VertexAttrib3(Int32 index, Int16 x, Int16 y, Int16 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3sARB((UInt32)index, (Int16)x, (Int16)y, (Int16)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3sARB")]
            public static 
            void VertexAttrib3(UInt32 index, Int16 x, Int16 y, Int16 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3sARB((UInt32)index, (Int16)x, (Int16)y, (Int16)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3svARB")]
            public static 
            unsafe void VertexAttrib3(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3svARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3svARB")]
            public static 
            void VertexAttrib3(Int32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3svARB")]
            public static 
            void VertexAttrib3(Int32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3svARB")]
            public static 
            unsafe void VertexAttrib3(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3svARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3svARB")]
            public static 
            void VertexAttrib3(UInt32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib3svARB")]
            public static 
            void VertexAttrib3(UInt32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4bvARB")]
            public static 
            void VertexAttrib4(UInt32 index, ref SByte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4bvARB((UInt32)index, (SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4bvARB")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, SByte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4bvARB((UInt32)index, (SByte*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4bvARB")]
            public static 
            void VertexAttrib4(UInt32 index, SByte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4bvARB((UInt32)index, (SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4dARB")]
            public static 
            void VertexAttrib4(Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4dARB((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4dARB")]
            public static 
            void VertexAttrib4(UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4dARB((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4dvARB")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4dvARB((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4dvARB")]
            public static 
            void VertexAttrib4(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4dvARB")]
            public static 
            void VertexAttrib4(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4dvARB")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4dvARB((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4dvARB")]
            public static 
            void VertexAttrib4(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4dvARB")]
            public static 
            void VertexAttrib4(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4dvARB((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4fARB")]
            public static 
            void VertexAttrib4(Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4fARB((UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4fARB")]
            public static 
            void VertexAttrib4(UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4fARB((UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4fvARB")]
            public static 
            void VertexAttrib4(Int32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4fvARB")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4fvARB((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4fvARB")]
            public static 
            void VertexAttrib4(Int32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4fvARB")]
            public static 
            void VertexAttrib4(UInt32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4fvARB")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4fvARB((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4fvARB")]
            public static 
            void VertexAttrib4(UInt32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4fvARB((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ivARB")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4ivARB((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ivARB")]
            public static 
            void VertexAttrib4(Int32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4ivARB((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ivARB")]
            public static 
            void VertexAttrib4(Int32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4ivARB((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ivARB")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4ivARB((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ivARB")]
            public static 
            void VertexAttrib4(UInt32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4ivARB((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ivARB")]
            public static 
            void VertexAttrib4(UInt32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4ivARB((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NbvARB")]
            public static 
            void VertexAttrib4N(UInt32 index, ref SByte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NbvARB((UInt32)index, (SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NbvARB")]
            public static 
            unsafe void VertexAttrib4N(UInt32 index, SByte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NbvARB((UInt32)index, (SByte*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NbvARB")]
            public static 
            void VertexAttrib4N(UInt32 index, SByte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NbvARB((UInt32)index, (SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NivARB")]
            public static 
            unsafe void VertexAttrib4N(Int32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NivARB((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NivARB")]
            public static 
            void VertexAttrib4N(Int32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NivARB((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NivARB")]
            public static 
            void VertexAttrib4N(Int32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NivARB((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NivARB")]
            public static 
            unsafe void VertexAttrib4N(UInt32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NivARB((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NivARB")]
            public static 
            void VertexAttrib4N(UInt32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NivARB((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NivARB")]
            public static 
            void VertexAttrib4N(UInt32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NivARB((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NsvARB")]
            public static 
            unsafe void VertexAttrib4N(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NsvARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NsvARB")]
            public static 
            void VertexAttrib4N(Int32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NsvARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NsvARB")]
            public static 
            void VertexAttrib4N(Int32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NsvARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NsvARB")]
            public static 
            unsafe void VertexAttrib4N(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NsvARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NsvARB")]
            public static 
            void VertexAttrib4N(UInt32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NsvARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NsvARB")]
            public static 
            void VertexAttrib4N(UInt32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NsvARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NubARB")]
            public static 
            void VertexAttrib4N(Int32 index, Byte x, Byte y, Byte z, Byte w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NubARB((UInt32)index, (Byte)x, (Byte)y, (Byte)z, (Byte)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NubARB")]
            public static 
            void VertexAttrib4N(UInt32 index, Byte x, Byte y, Byte z, Byte w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NubARB((UInt32)index, (Byte)x, (Byte)y, (Byte)z, (Byte)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NubvARB")]
            public static 
            unsafe void VertexAttrib4N(Int32 index, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NubvARB((UInt32)index, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NubvARB")]
            public static 
            void VertexAttrib4N(Int32 index, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NubvARB((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NubvARB")]
            public static 
            void VertexAttrib4N(Int32 index, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NubvARB((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NubvARB")]
            public static 
            unsafe void VertexAttrib4N(UInt32 index, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NubvARB((UInt32)index, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NubvARB")]
            public static 
            void VertexAttrib4N(UInt32 index, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NubvARB((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NubvARB")]
            public static 
            void VertexAttrib4N(UInt32 index, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NubvARB((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NuivARB")]
            public static 
            void VertexAttrib4N(UInt32 index, ref UInt32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NuivARB((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NuivARB")]
            public static 
            unsafe void VertexAttrib4N(UInt32 index, UInt32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NuivARB((UInt32)index, (UInt32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NuivARB")]
            public static 
            void VertexAttrib4N(UInt32 index, UInt32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NuivARB((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NusvARB")]
            public static 
            void VertexAttrib4N(UInt32 index, ref UInt16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4NusvARB((UInt32)index, (UInt16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NusvARB")]
            public static 
            unsafe void VertexAttrib4N(UInt32 index, UInt16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4NusvARB((UInt32)index, (UInt16*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4NusvARB")]
            public static 
            void VertexAttrib4N(UInt32 index, UInt16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4NusvARB((UInt32)index, (UInt16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4sARB")]
            public static 
            void VertexAttrib4(Int32 index, Int16 x, Int16 y, Int16 z, Int16 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4sARB((UInt32)index, (Int16)x, (Int16)y, (Int16)z, (Int16)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4sARB")]
            public static 
            void VertexAttrib4(UInt32 index, Int16 x, Int16 y, Int16 z, Int16 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4sARB((UInt32)index, (Int16)x, (Int16)y, (Int16)z, (Int16)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4svARB")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4svARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4svARB")]
            public static 
            void VertexAttrib4(Int32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4svARB")]
            public static 
            void VertexAttrib4(Int32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4svARB")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4svARB((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4svARB")]
            public static 
            void VertexAttrib4(UInt32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4svARB")]
            public static 
            void VertexAttrib4(UInt32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4svARB((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ubvARB")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4ubvARB((UInt32)index, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ubvARB")]
            public static 
            void VertexAttrib4(Int32 index, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4ubvARB((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ubvARB")]
            public static 
            void VertexAttrib4(Int32 index, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4ubvARB((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ubvARB")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4ubvARB((UInt32)index, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ubvARB")]
            public static 
            void VertexAttrib4(UInt32 index, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4ubvARB((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4ubvARB")]
            public static 
            void VertexAttrib4(UInt32 index, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4ubvARB((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4uivARB")]
            public static 
            void VertexAttrib4(UInt32 index, ref UInt32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4uivARB((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4uivARB")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, UInt32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4uivARB((UInt32)index, (UInt32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4uivARB")]
            public static 
            void VertexAttrib4(UInt32 index, UInt32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4uivARB((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4usvARB")]
            public static 
            void VertexAttrib4(UInt32 index, ref UInt16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4usvARB((UInt32)index, (UInt16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4usvARB")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, UInt16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4usvARB((UInt32)index, (UInt16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttrib4usvARB")]
            public static 
            void VertexAttrib4(UInt32 index, UInt16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4usvARB((UInt32)index, (UInt16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbInstancedArrays", Version = "2.0", EntryPoint = "glVertexAttribDivisorARB")]
            public static 
            void VertexAttribDivisor(Int32 index, Int32 divisor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribDivisorARB((UInt32)index, (UInt32)divisor);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbInstancedArrays", Version = "2.0", EntryPoint = "glVertexAttribDivisorARB")]
            public static 
            void VertexAttribDivisor(UInt32 index, UInt32 divisor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribDivisorARB((UInt32)index, (UInt32)divisor);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(Int32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [In, Out] ref T5 pointer)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(Int32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [In, Out] T5[,,] pointer)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(Int32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [In, Out] T5[,] pointer)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(Int32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [In, Out] T5[] pointer)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer(Int32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(UInt32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [In, Out] ref T5 pointer)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(UInt32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [In, Out] T5[,,] pointer)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(UInt32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [In, Out] T5[,] pointer)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(UInt32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [In, Out] T5[] pointer)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexProgram", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer(UInt32 index, Int32 size, VertexAttribPointerTypeArb type, bool normalized, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glVertexBlendARB")]
            public static 
            void VertexBlend(Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexBlendARB((Int32)count);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightbvARB")]
            public static 
            void Weight(Int32 size, ref SByte weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* weights_ptr = &weights)
                    {
                        Delegates.glWeightbvARB((Int32)size, (SByte*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightbvARB")]
            public static 
            unsafe void Weight(Int32 size, SByte* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightbvARB((Int32)size, (SByte*)weights);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightbvARB")]
            public static 
            void Weight(Int32 size, SByte[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* weights_ptr = weights)
                    {
                        Delegates.glWeightbvARB((Int32)size, (SByte*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightdvARB")]
            public static 
            unsafe void Weight(Int32 size, Double* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightdvARB((Int32)size, (Double*)weights);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightdvARB")]
            public static 
            void Weight(Int32 size, Double[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* weights_ptr = weights)
                    {
                        Delegates.glWeightdvARB((Int32)size, (Double*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightdvARB")]
            public static 
            void Weight(Int32 size, ref Double weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* weights_ptr = &weights)
                    {
                        Delegates.glWeightdvARB((Int32)size, (Double*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightfvARB")]
            public static 
            void Weight(Int32 size, ref Single weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = &weights)
                    {
                        Delegates.glWeightfvARB((Int32)size, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightfvARB")]
            public static 
            unsafe void Weight(Int32 size, Single* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightfvARB((Int32)size, (Single*)weights);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightfvARB")]
            public static 
            void Weight(Int32 size, Single[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = weights)
                    {
                        Delegates.glWeightfvARB((Int32)size, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightivARB")]
            public static 
            unsafe void Weight(Int32 size, Int32* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightivARB((Int32)size, (Int32*)weights);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightivARB")]
            public static 
            void Weight(Int32 size, Int32[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* weights_ptr = weights)
                    {
                        Delegates.glWeightivARB((Int32)size, (Int32*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightivARB")]
            public static 
            void Weight(Int32 size, ref Int32 weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* weights_ptr = &weights)
                    {
                        Delegates.glWeightivARB((Int32)size, (Int32*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer<T3>(Int32 size, ArbVertexBlend type, Int32 stride, [In, Out] ref T3 pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glWeightPointerARB((Int32)size, (ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer<T3>(Int32 size, ArbVertexBlend type, Int32 stride, [In, Out] T3[,,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glWeightPointerARB((Int32)size, (ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer<T3>(Int32 size, ArbVertexBlend type, Int32 stride, [In, Out] T3[,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glWeightPointerARB((Int32)size, (ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer<T3>(Int32 size, ArbVertexBlend type, Int32 stride, [In, Out] T3[] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glWeightPointerARB((Int32)size, (ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer(Int32 size, ArbVertexBlend type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightPointerARB((Int32)size, (ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightsvARB")]
            public static 
            unsafe void Weight(Int32 size, Int16* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightsvARB((Int32)size, (Int16*)weights);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightsvARB")]
            public static 
            void Weight(Int32 size, Int16[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* weights_ptr = weights)
                    {
                        Delegates.glWeightsvARB((Int32)size, (Int16*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightsvARB")]
            public static 
            void Weight(Int32 size, ref Int16 weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* weights_ptr = &weights)
                    {
                        Delegates.glWeightsvARB((Int32)size, (Int16*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightubvARB")]
            public static 
            unsafe void Weight(Int32 size, Byte* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightubvARB((Int32)size, (Byte*)weights);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightubvARB")]
            public static 
            void Weight(Int32 size, Byte[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* weights_ptr = weights)
                    {
                        Delegates.glWeightubvARB((Int32)size, (Byte*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightubvARB")]
            public static 
            void Weight(Int32 size, ref Byte weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* weights_ptr = &weights)
                    {
                        Delegates.glWeightubvARB((Int32)size, (Byte*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightuivARB")]
            public static 
            void Weight(Int32 size, ref UInt32 weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* weights_ptr = &weights)
                    {
                        Delegates.glWeightuivARB((Int32)size, (UInt32*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightuivARB")]
            public static 
            unsafe void Weight(Int32 size, UInt32* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightuivARB((Int32)size, (UInt32*)weights);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightuivARB")]
            public static 
            void Weight(Int32 size, UInt32[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* weights_ptr = weights)
                    {
                        Delegates.glWeightuivARB((Int32)size, (UInt32*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightusvARB")]
            public static 
            void Weight(Int32 size, ref UInt16 weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* weights_ptr = &weights)
                    {
                        Delegates.glWeightusvARB((Int32)size, (UInt16*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightusvARB")]
            public static 
            unsafe void Weight(Int32 size, UInt16* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightusvARB((Int32)size, (UInt16*)weights);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbVertexBlend", Version = "1.1", EntryPoint = "glWeightusvARB")]
            public static 
            void Weight(Int32 size, UInt16[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* weights_ptr = weights)
                    {
                        Delegates.glWeightusvARB((Int32)size, (UInt16*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2dARB")]
            public static 
            void WindowPos2(Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2dARB((Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2dvARB")]
            public static 
            unsafe void WindowPos2(Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2dvARB((Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2dvARB")]
            public static 
            void WindowPos2(Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glWindowPos2dvARB((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2dvARB")]
            public static 
            void WindowPos2(ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glWindowPos2dvARB((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2fARB")]
            public static 
            void WindowPos2(Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2fARB((Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2fvARB")]
            public static 
            void WindowPos2(ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glWindowPos2fvARB((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2fvARB")]
            public static 
            unsafe void WindowPos2(Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2fvARB((Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2fvARB")]
            public static 
            void WindowPos2(Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glWindowPos2fvARB((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2iARB")]
            public static 
            void WindowPos2(Int32 x, Int32 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2iARB((Int32)x, (Int32)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2ivARB")]
            public static 
            unsafe void WindowPos2(Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2ivARB((Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2ivARB")]
            public static 
            void WindowPos2(Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glWindowPos2ivARB((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2ivARB")]
            public static 
            void WindowPos2(ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glWindowPos2ivARB((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2sARB")]
            public static 
            void WindowPos2(Int16 x, Int16 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2sARB((Int16)x, (Int16)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2svARB")]
            public static 
            unsafe void WindowPos2(Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2svARB((Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2svARB")]
            public static 
            void WindowPos2(Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glWindowPos2svARB((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos2svARB")]
            public static 
            void WindowPos2(ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glWindowPos2svARB((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3dARB")]
            public static 
            void WindowPos3(Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3dARB((Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3dvARB")]
            public static 
            unsafe void WindowPos3(Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3dvARB((Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3dvARB")]
            public static 
            void WindowPos3(Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glWindowPos3dvARB((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3dvARB")]
            public static 
            void WindowPos3(ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glWindowPos3dvARB((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3fARB")]
            public static 
            void WindowPos3(Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3fARB((Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3fvARB")]
            public static 
            void WindowPos3(ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glWindowPos3fvARB((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3fvARB")]
            public static 
            unsafe void WindowPos3(Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3fvARB((Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3fvARB")]
            public static 
            void WindowPos3(Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glWindowPos3fvARB((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3iARB")]
            public static 
            void WindowPos3(Int32 x, Int32 y, Int32 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3iARB((Int32)x, (Int32)y, (Int32)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3ivARB")]
            public static 
            unsafe void WindowPos3(Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3ivARB((Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3ivARB")]
            public static 
            void WindowPos3(Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glWindowPos3ivARB((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3ivARB")]
            public static 
            void WindowPos3(ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glWindowPos3ivARB((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3sARB")]
            public static 
            void WindowPos3(Int16 x, Int16 y, Int16 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3sARB((Int16)x, (Int16)y, (Int16)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3svARB")]
            public static 
            unsafe void WindowPos3(Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3svARB((Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3svARB")]
            public static 
            void WindowPos3(Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glWindowPos3svARB((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ArbWindowPos", Version = "1.0", EntryPoint = "glWindowPos3svARB")]
            public static 
            void WindowPos3(ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glWindowPos3svARB((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Ati
        {
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glAlphaFragmentOp1ATI")]
            public static 
            void AlphaFragmentOp1(AtiFragmentShader op, Int32 dst, Int32 dstMod, Int32 arg1, Int32 arg1Rep, Int32 arg1Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFragmentOp1ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glAlphaFragmentOp1ATI")]
            public static 
            void AlphaFragmentOp1(AtiFragmentShader op, UInt32 dst, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFragmentOp1ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glAlphaFragmentOp2ATI")]
            public static 
            void AlphaFragmentOp2(AtiFragmentShader op, Int32 dst, Int32 dstMod, Int32 arg1, Int32 arg1Rep, Int32 arg1Mod, Int32 arg2, Int32 arg2Rep, Int32 arg2Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFragmentOp2ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glAlphaFragmentOp2ATI")]
            public static 
            void AlphaFragmentOp2(AtiFragmentShader op, UInt32 dst, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod, UInt32 arg2, UInt32 arg2Rep, UInt32 arg2Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFragmentOp2ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glAlphaFragmentOp3ATI")]
            public static 
            void AlphaFragmentOp3(AtiFragmentShader op, Int32 dst, Int32 dstMod, Int32 arg1, Int32 arg1Rep, Int32 arg1Mod, Int32 arg2, Int32 arg2Rep, Int32 arg2Mod, Int32 arg3, Int32 arg3Rep, Int32 arg3Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFragmentOp3ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod, (UInt32)arg3, (UInt32)arg3Rep, (UInt32)arg3Mod);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glAlphaFragmentOp3ATI")]
            public static 
            void AlphaFragmentOp3(AtiFragmentShader op, UInt32 dst, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod, UInt32 arg2, UInt32 arg2Rep, UInt32 arg2Mod, UInt32 arg3, UInt32 arg3Rep, UInt32 arg3Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFragmentOp3ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod, (UInt32)arg3, (UInt32)arg3Rep, (UInt32)arg3Mod);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glArrayObjectATI")]
            public static 
            void ArrayObject(EnableCap array, Int32 size, AtiVertexArrayObject type, Int32 stride, Int32 buffer, Int32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glArrayObjectATI((EnableCap)array, (Int32)size, (AtiVertexArrayObject)type, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glArrayObjectATI")]
            public static 
            void ArrayObject(EnableCap array, Int32 size, AtiVertexArrayObject type, Int32 stride, UInt32 buffer, UInt32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glArrayObjectATI((EnableCap)array, (Int32)size, (AtiVertexArrayObject)type, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glBeginFragmentShaderATI")]
            public static 
            void BeginFragmentShader()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginFragmentShaderATI();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glBindFragmentShaderATI")]
            public static 
            void BindFragmentShader(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindFragmentShaderATI((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glBindFragmentShaderATI")]
            public static 
            void BindFragmentShader(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindFragmentShaderATI((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glClientActiveVertexStreamATI")]
            public static 
            void ClientActiveVertexStream(AtiVertexStreams stream)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClientActiveVertexStreamATI((AtiVertexStreams)stream);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glColorFragmentOp1ATI")]
            public static 
            void ColorFragmentOp1(AtiFragmentShader op, Int32 dst, Int32 dstMask, Int32 dstMod, Int32 arg1, Int32 arg1Rep, Int32 arg1Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFragmentOp1ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glColorFragmentOp1ATI")]
            public static 
            void ColorFragmentOp1(AtiFragmentShader op, UInt32 dst, UInt32 dstMask, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFragmentOp1ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glColorFragmentOp2ATI")]
            public static 
            void ColorFragmentOp2(AtiFragmentShader op, Int32 dst, Int32 dstMask, Int32 dstMod, Int32 arg1, Int32 arg1Rep, Int32 arg1Mod, Int32 arg2, Int32 arg2Rep, Int32 arg2Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFragmentOp2ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glColorFragmentOp2ATI")]
            public static 
            void ColorFragmentOp2(AtiFragmentShader op, UInt32 dst, UInt32 dstMask, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod, UInt32 arg2, UInt32 arg2Rep, UInt32 arg2Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFragmentOp2ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glColorFragmentOp3ATI")]
            public static 
            void ColorFragmentOp3(AtiFragmentShader op, Int32 dst, Int32 dstMask, Int32 dstMod, Int32 arg1, Int32 arg1Rep, Int32 arg1Mod, Int32 arg2, Int32 arg2Rep, Int32 arg2Mod, Int32 arg3, Int32 arg3Rep, Int32 arg3Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFragmentOp3ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod, (UInt32)arg3, (UInt32)arg3Rep, (UInt32)arg3Mod);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glColorFragmentOp3ATI")]
            public static 
            void ColorFragmentOp3(AtiFragmentShader op, UInt32 dst, UInt32 dstMask, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod, UInt32 arg2, UInt32 arg2Rep, UInt32 arg2Mod, UInt32 arg3, UInt32 arg3Rep, UInt32 arg3Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFragmentOp3ATI((AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod, (UInt32)arg3, (UInt32)arg3Rep, (UInt32)arg3Mod);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glDeleteFragmentShaderATI")]
            public static 
            void DeleteFragmentShader(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteFragmentShaderATI((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glDeleteFragmentShaderATI")]
            public static 
            void DeleteFragmentShader(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteFragmentShaderATI((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiDrawBuffers", Version = "1.2", EntryPoint = "glDrawBuffersATI")]
            public static 
            unsafe void DrawBuffers(Int32 n, AtiDrawBuffers* bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawBuffersATI((Int32)n, (AtiDrawBuffers*)bufs);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AtiDrawBuffers", Version = "1.2", EntryPoint = "glDrawBuffersATI")]
            public static 
            void DrawBuffers(Int32 n, AtiDrawBuffers[] bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (AtiDrawBuffers* bufs_ptr = bufs)
                    {
                        Delegates.glDrawBuffersATI((Int32)n, (AtiDrawBuffers*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AtiDrawBuffers", Version = "1.2", EntryPoint = "glDrawBuffersATI")]
            public static 
            void DrawBuffers(Int32 n, ref AtiDrawBuffers bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (AtiDrawBuffers* bufs_ptr = &bufs)
                    {
                        Delegates.glDrawBuffersATI((Int32)n, (AtiDrawBuffers*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiElementArray", Version = "1.2", EntryPoint = "glDrawElementArrayATI")]
            public static 
            void DrawElementArray(BeginMode mode, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawElementArrayATI((BeginMode)mode, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiElementArray", Version = "1.2", EntryPoint = "glDrawRangeElementArrayATI")]
            public static 
            void DrawRangeElementArray(BeginMode mode, Int32 start, Int32 end, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementArrayATI((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiElementArray", Version = "1.2", EntryPoint = "glDrawRangeElementArrayATI")]
            public static 
            void DrawRangeElementArray(BeginMode mode, UInt32 start, UInt32 end, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementArrayATI((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiElementArray", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer<T1>(AtiElementArray type, [In, Out] ref T1 pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerATI((AtiElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiElementArray", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer<T1>(AtiElementArray type, [In, Out] T1[,,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerATI((AtiElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiElementArray", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer<T1>(AtiElementArray type, [In, Out] T1[,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerATI((AtiElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiElementArray", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer<T1>(AtiElementArray type, [In, Out] T1[] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerATI((AtiElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiElementArray", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer(AtiElementArray type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glElementPointerATI((AtiElementArray)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glEndFragmentShaderATI")]
            public static 
            void EndFragmentShader()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndFragmentShaderATI();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glFreeObjectBufferATI")]
            public static 
            void FreeObjectBuffer(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFreeObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glFreeObjectBufferATI")]
            public static 
            void FreeObjectBuffer(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFreeObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glGenFragmentShadersATI")]
            public static 
            Int32 GenFragmentShaders(Int32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenFragmentShadersATI((UInt32)range);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glGenFragmentShadersATI")]
            public static 
            Int32 GenFragmentShaders(UInt32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenFragmentShadersATI((UInt32)range);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetArrayObjectfvATI")]
            public static 
            void GetArrayObject(EnableCap array, AtiVertexArrayObject pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetArrayObjectfvATI((EnableCap)array, (AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetArrayObjectfvATI")]
            public static 
            unsafe void GetArrayObject(EnableCap array, AtiVertexArrayObject pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetArrayObjectfvATI((EnableCap)array, (AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetArrayObjectivATI")]
            public static 
            unsafe void GetArrayObject(EnableCap array, AtiVertexArrayObject pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetArrayObjectivATI((EnableCap)array, (AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetArrayObjectivATI")]
            public static 
            void GetArrayObject(EnableCap array, AtiVertexArrayObject pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetArrayObjectivATI((EnableCap)array, (AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetObjectBufferfvATI")]
            public static 
            void GetObjectBuffer(Int32 buffer, AtiVertexArrayObject pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectBufferfvATI((UInt32)buffer, (AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetObjectBufferfvATI")]
            public static 
            unsafe void GetObjectBuffer(Int32 buffer, AtiVertexArrayObject pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectBufferfvATI((UInt32)buffer, (AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetObjectBufferfvATI")]
            public static 
            void GetObjectBuffer(UInt32 buffer, AtiVertexArrayObject pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectBufferfvATI((UInt32)buffer, (AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetObjectBufferfvATI")]
            public static 
            unsafe void GetObjectBuffer(UInt32 buffer, AtiVertexArrayObject pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectBufferfvATI((UInt32)buffer, (AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetObjectBufferivATI")]
            public static 
            unsafe void GetObjectBuffer(Int32 buffer, AtiVertexArrayObject pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectBufferivATI((UInt32)buffer, (AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetObjectBufferivATI")]
            public static 
            void GetObjectBuffer(Int32 buffer, AtiVertexArrayObject pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectBufferivATI((UInt32)buffer, (AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetObjectBufferivATI")]
            public static 
            unsafe void GetObjectBuffer(UInt32 buffer, AtiVertexArrayObject pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectBufferivATI((UInt32)buffer, (AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetObjectBufferivATI")]
            public static 
            void GetObjectBuffer(UInt32 buffer, AtiVertexArrayObject pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectBufferivATI((UInt32)buffer, (AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterfvATI")]
            public static 
            void GetTexBumpParameter(AtiEnvmapBumpmap pname, [Out] out Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* param_ptr = &param)
                    {
                        Delegates.glGetTexBumpParameterfvATI((AtiEnvmapBumpmap)pname, (Single*)param_ptr);
                        param = *param_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterfvATI")]
            public static 
            unsafe void GetTexBumpParameter(AtiEnvmapBumpmap pname, [Out] Single* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexBumpParameterfvATI((AtiEnvmapBumpmap)pname, (Single*)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterfvATI")]
            public static 
            void GetTexBumpParameter(AtiEnvmapBumpmap pname, [Out] Single[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* param_ptr = param)
                    {
                        Delegates.glGetTexBumpParameterfvATI((AtiEnvmapBumpmap)pname, (Single*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterivATI")]
            public static 
            unsafe void GetTexBumpParameter(AtiEnvmapBumpmap pname, [Out] Int32* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexBumpParameterivATI((AtiEnvmapBumpmap)pname, (Int32*)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterivATI")]
            public static 
            void GetTexBumpParameter(AtiEnvmapBumpmap pname, [Out] Int32[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = param)
                    {
                        Delegates.glGetTexBumpParameterivATI((AtiEnvmapBumpmap)pname, (Int32*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterivATI")]
            public static 
            void GetTexBumpParameter(AtiEnvmapBumpmap pname, [Out] out Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = &param)
                    {
                        Delegates.glGetTexBumpParameterivATI((AtiEnvmapBumpmap)pname, (Int32*)param_ptr);
                        param = *param_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetVariantArrayObjectfvATI")]
            public static 
            void GetVariantArrayObject(Int32 id, AtiVertexArrayObject pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVariantArrayObjectfvATI((UInt32)id, (AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetVariantArrayObjectfvATI")]
            public static 
            unsafe void GetVariantArrayObject(Int32 id, AtiVertexArrayObject pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantArrayObjectfvATI((UInt32)id, (AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetVariantArrayObjectfvATI")]
            public static 
            void GetVariantArrayObject(UInt32 id, AtiVertexArrayObject pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVariantArrayObjectfvATI((UInt32)id, (AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetVariantArrayObjectfvATI")]
            public static 
            unsafe void GetVariantArrayObject(UInt32 id, AtiVertexArrayObject pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantArrayObjectfvATI((UInt32)id, (AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetVariantArrayObjectivATI")]
            public static 
            unsafe void GetVariantArrayObject(Int32 id, AtiVertexArrayObject pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantArrayObjectivATI((UInt32)id, (AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetVariantArrayObjectivATI")]
            public static 
            void GetVariantArrayObject(Int32 id, AtiVertexArrayObject pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVariantArrayObjectivATI((UInt32)id, (AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetVariantArrayObjectivATI")]
            public static 
            unsafe void GetVariantArrayObject(UInt32 id, AtiVertexArrayObject pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantArrayObjectivATI((UInt32)id, (AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glGetVariantArrayObjectivATI")]
            public static 
            void GetVariantArrayObject(UInt32 id, AtiVertexArrayObject pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVariantArrayObjectivATI((UInt32)id, (AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            void GetVertexAttribArrayObject(Int32 index, AtiVertexAttribArrayObject pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            unsafe void GetVertexAttribArrayObject(Int32 index, AtiVertexAttribArrayObject pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            void GetVertexAttribArrayObject(Int32 index, AtiVertexAttribArrayObject pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            void GetVertexAttribArrayObject(UInt32 index, AtiVertexAttribArrayObject pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            unsafe void GetVertexAttribArrayObject(UInt32 index, AtiVertexAttribArrayObject pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            void GetVertexAttribArrayObject(UInt32 index, AtiVertexAttribArrayObject pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            unsafe void GetVertexAttribArrayObject(Int32 index, AtiVertexAttribArrayObject pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            void GetVertexAttribArrayObject(Int32 index, AtiVertexAttribArrayObject pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            void GetVertexAttribArrayObject(Int32 index, AtiVertexAttribArrayObject pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            unsafe void GetVertexAttribArrayObject(UInt32 index, AtiVertexAttribArrayObject pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            void GetVertexAttribArrayObject(UInt32 index, AtiVertexAttribArrayObject pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            void GetVertexAttribArrayObject(UInt32 index, AtiVertexAttribArrayObject pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (AtiVertexAttribArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glIsObjectBufferATI")]
            public static 
            bool IsObjectBuffer(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glIsObjectBufferATI")]
            public static 
            bool IsObjectBuffer(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiMapObjectBuffer", Version = "1.2", EntryPoint = "glMapObjectBufferATI")]
            public static 
            unsafe IntPtr MapObjectBuffer(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiMapObjectBuffer", Version = "1.2", EntryPoint = "glMapObjectBufferATI")]
            public static 
            unsafe IntPtr MapObjectBuffer(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer<T1>(Int32 size, [In, Out] ref T1 pointer, AtiVertexArrayObject usage)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    return Delegates.glNewObjectBufferATI((Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)usage);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer<T1>(Int32 size, [In, Out] T1[,,] pointer, AtiVertexArrayObject usage)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    return Delegates.glNewObjectBufferATI((Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)usage);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer<T1>(Int32 size, [In, Out] T1[,] pointer, AtiVertexArrayObject usage)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    return Delegates.glNewObjectBufferATI((Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)usage);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer<T1>(Int32 size, [In, Out] T1[] pointer, AtiVertexArrayObject usage)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    return Delegates.glNewObjectBufferATI((Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)usage);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer(Int32 size, IntPtr pointer, AtiVertexArrayObject usage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glNewObjectBufferATI((Int32)size, (IntPtr)pointer, (AtiVertexArrayObject)usage);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3bATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Byte nx, Byte ny, Byte nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3bATI((AtiVertexStreams)stream, (SByte)nx, (SByte)ny, (SByte)nz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3bATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, SByte nx, SByte ny, SByte nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3bATI((AtiVertexStreams)stream, (SByte)nx, (SByte)ny, (SByte)nz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            unsafe void NormalStream3(AtiVertexStreams stream, Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3bvATI((AtiVertexStreams)stream, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3bvATI((AtiVertexStreams)stream, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3bvATI((AtiVertexStreams)stream, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3bvATI((AtiVertexStreams)stream, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            unsafe void NormalStream3(AtiVertexStreams stream, SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3bvATI((AtiVertexStreams)stream, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3bvATI((AtiVertexStreams)stream, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3dATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Double nx, Double ny, Double nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3dATI((AtiVertexStreams)stream, (Double)nx, (Double)ny, (Double)nz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3dvATI")]
            public static 
            unsafe void NormalStream3(AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3dvATI((AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3dvATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Double[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3dvATI((AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3dvATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, ref Double coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3dvATI((AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3fATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Single nx, Single ny, Single nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3fATI((AtiVertexStreams)stream, (Single)nx, (Single)ny, (Single)nz);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3fvATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, ref Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3fvATI((AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3fvATI")]
            public static 
            unsafe void NormalStream3(AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3fvATI((AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3fvATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3fvATI((AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3iATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Int32 nx, Int32 ny, Int32 nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3iATI((AtiVertexStreams)stream, (Int32)nx, (Int32)ny, (Int32)nz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3ivATI")]
            public static 
            unsafe void NormalStream3(AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3ivATI((AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3ivATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Int32[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3ivATI((AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3ivATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, ref Int32 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3ivATI((AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3sATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Int16 nx, Int16 ny, Int16 nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3sATI((AtiVertexStreams)stream, (Int16)nx, (Int16)ny, (Int16)nz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3svATI")]
            public static 
            unsafe void NormalStream3(AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3svATI((AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3svATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, Int16[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3svATI((AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glNormalStream3svATI")]
            public static 
            void NormalStream3(AtiVertexStreams stream, ref Int16 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3svATI((AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glPassTexCoordATI")]
            public static 
            void PassTexCoor(Int32 dst, Int32 coord, AtiFragmentShader swizzle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPassTexCoordATI((UInt32)dst, (UInt32)coord, (AtiFragmentShader)swizzle);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glPassTexCoordATI")]
            public static 
            void PassTexCoor(UInt32 dst, UInt32 coord, AtiFragmentShader swizzle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPassTexCoordATI((UInt32)dst, (UInt32)coord, (AtiFragmentShader)swizzle);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiPnTriangles", Version = "1.2", EntryPoint = "glPNTrianglesfATI")]
            public static 
            void PNTriangles(AtiPnTriangles pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPNTrianglesfATI((AtiPnTriangles)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiPnTriangles", Version = "1.2", EntryPoint = "glPNTrianglesiATI")]
            public static 
            void PNTriangles(AtiPnTriangles pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPNTrianglesiATI((AtiPnTriangles)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glSampleMapATI")]
            public static 
            void SampleMap(Int32 dst, Int32 interp, AtiFragmentShader swizzle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleMapATI((UInt32)dst, (UInt32)interp, (AtiFragmentShader)swizzle);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glSampleMapATI")]
            public static 
            void SampleMap(UInt32 dst, UInt32 interp, AtiFragmentShader swizzle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleMapATI((UInt32)dst, (UInt32)interp, (AtiFragmentShader)swizzle);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glSetFragmentShaderConstantATI")]
            public static 
            void SetFragmentShaderConstant(Int32 dst, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glSetFragmentShaderConstantATI((UInt32)dst, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glSetFragmentShaderConstantATI")]
            public static 
            unsafe void SetFragmentShaderConstant(Int32 dst, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetFragmentShaderConstantATI((UInt32)dst, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glSetFragmentShaderConstantATI")]
            public static 
            void SetFragmentShaderConstant(Int32 dst, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glSetFragmentShaderConstantATI((UInt32)dst, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glSetFragmentShaderConstantATI")]
            public static 
            void SetFragmentShaderConstant(UInt32 dst, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glSetFragmentShaderConstantATI((UInt32)dst, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glSetFragmentShaderConstantATI")]
            public static 
            unsafe void SetFragmentShaderConstant(UInt32 dst, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetFragmentShaderConstantATI((UInt32)dst, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiFragmentShader", Version = "1.2", EntryPoint = "glSetFragmentShaderConstantATI")]
            public static 
            void SetFragmentShaderConstant(UInt32 dst, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glSetFragmentShaderConstantATI((UInt32)dst, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set front and/or back function and reference value for stencil testing
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="func">
        /// <para>
        /// Specifies the test function. Eight symbolic constants are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS.
        /// </para>
        /// </param>
        /// <param name="ref">
        /// <para>
        /// Specifies the reference value for the stencil test. ref is clamped to the range [0, 2 sup n - 1], where is the number of bitplanes in the stencil buffer. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AtiSeparateStencil", Version = "1.2", EntryPoint = "glStencilFuncSeparateATI")]
            public static 
            void StencilFuncSeparate(StencilFunction frontfunc, StencilFunction backfunc, Int32 @ref, Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilFuncSeparateATI((StencilFunction)frontfunc, (StencilFunction)backfunc, (Int32)@ref, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set front and/or back function and reference value for stencil testing
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="func">
        /// <para>
        /// Specifies the test function. Eight symbolic constants are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS.
        /// </para>
        /// </param>
        /// <param name="ref">
        /// <para>
        /// Specifies the reference value for the stencil test. ref is clamped to the range [0, 2 sup n - 1], where is the number of bitplanes in the stencil buffer. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiSeparateStencil", Version = "1.2", EntryPoint = "glStencilFuncSeparateATI")]
            public static 
            void StencilFuncSeparate(StencilFunction frontfunc, StencilFunction backfunc, Int32 @ref, UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilFuncSeparateATI((StencilFunction)frontfunc, (StencilFunction)backfunc, (Int32)@ref, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set front and/or back stencil test actions
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="sfail">
        /// <para>
        /// Specifies the action to take when the stencil test fails. Eight symbolic constants are accepted: GL_KEEP, GL_ZERO, GL_REPLACE, GL_INCR, GL_INCR_WRAP, GL_DECR, GL_DECR_WRAP, and GL_INVERT. The initial value is GL_KEEP.
        /// </para>
        /// </param>
        /// <param name="dpfail">
        /// <para>
        /// Specifies the stencil action when the stencil test passes, but the depth test fails. dpfail accepts the same symbolic constants as sfail. The initial value is GL_KEEP.
        /// </para>
        /// </param>
        /// <param name="dppass">
        /// <para>
        /// Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled. dppass accepts the same symbolic constants as sfail. The initial value is GL_KEEP.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AtiSeparateStencil", Version = "1.2", EntryPoint = "glStencilOpSeparateATI")]
            public static 
            void StencilOpSeparate(AtiSeparateStencil face, StencilOp sfail, StencilOp dpfail, StencilOp dppass)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilOpSeparateATI((AtiSeparateStencil)face, (StencilOp)sfail, (StencilOp)dpfail, (StencilOp)dppass);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterfvATI")]
            public static 
            void TexBumpParameter(AtiEnvmapBumpmap pname, ref Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* param_ptr = &param)
                    {
                        Delegates.glTexBumpParameterfvATI((AtiEnvmapBumpmap)pname, (Single*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterfvATI")]
            public static 
            unsafe void TexBumpParameter(AtiEnvmapBumpmap pname, Single* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBumpParameterfvATI((AtiEnvmapBumpmap)pname, (Single*)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterfvATI")]
            public static 
            void TexBumpParameter(AtiEnvmapBumpmap pname, Single[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* param_ptr = param)
                    {
                        Delegates.glTexBumpParameterfvATI((AtiEnvmapBumpmap)pname, (Single*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterivATI")]
            public static 
            unsafe void TexBumpParameter(AtiEnvmapBumpmap pname, Int32* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBumpParameterivATI((AtiEnvmapBumpmap)pname, (Int32*)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterivATI")]
            public static 
            void TexBumpParameter(AtiEnvmapBumpmap pname, Int32[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = param)
                    {
                        Delegates.glTexBumpParameterivATI((AtiEnvmapBumpmap)pname, (Int32*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiEnvmapBumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterivATI")]
            public static 
            void TexBumpParameter(AtiEnvmapBumpmap pname, ref Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = &param)
                    {
                        Delegates.glTexBumpParameterivATI((AtiEnvmapBumpmap)pname, (Int32*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiMapObjectBuffer", Version = "1.2", EntryPoint = "glUnmapObjectBufferATI")]
            public static 
            void UnmapObjectBuffer(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUnmapObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiMapObjectBuffer", Version = "1.2", EntryPoint = "glUnmapObjectBufferATI")]
            public static 
            void UnmapObjectBuffer(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUnmapObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [In, Out] ref T3 pointer, AtiVertexArrayObject preserve)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [In, Out] T3[,,] pointer, AtiVertexArrayObject preserve)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [In, Out] T3[,] pointer, AtiVertexArrayObject preserve)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [In, Out] T3[] pointer, AtiVertexArrayObject preserve)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer(Int32 buffer, Int32 offset, Int32 size, IntPtr pointer, AtiVertexArrayObject preserve)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer, (AtiVertexArrayObject)preserve);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [In, Out] ref T3 pointer, AtiVertexArrayObject preserve)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [In, Out] T3[,,] pointer, AtiVertexArrayObject preserve)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [In, Out] T3[,] pointer, AtiVertexArrayObject preserve)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [In, Out] T3[] pointer, AtiVertexArrayObject preserve)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer(UInt32 buffer, UInt32 offset, Int32 size, IntPtr pointer, AtiVertexArrayObject preserve)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer, (AtiVertexArrayObject)preserve);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glVariantArrayObjectATI")]
            public static 
            void VariantArrayObject(Int32 id, AtiVertexArrayObject type, Int32 stride, Int32 buffer, Int32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantArrayObjectATI((UInt32)id, (AtiVertexArrayObject)type, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexArrayObject", Version = "1.2", EntryPoint = "glVariantArrayObjectATI")]
            public static 
            void VariantArrayObject(UInt32 id, AtiVertexArrayObject type, Int32 stride, UInt32 buffer, UInt32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantArrayObjectATI((UInt32)id, (AtiVertexArrayObject)type, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glVertexAttribArrayObjectATI")]
            public static 
            void VertexAttribArrayObject(Int32 index, Int32 size, AtiVertexAttribArrayObject type, bool normalized, Int32 stride, Int32 buffer, Int32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribArrayObjectATI((UInt32)index, (Int32)size, (AtiVertexAttribArrayObject)type, (bool)normalized, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexAttribArrayObject", Version = "1.2", EntryPoint = "glVertexAttribArrayObjectATI")]
            public static 
            void VertexAttribArrayObject(UInt32 index, Int32 size, AtiVertexAttribArrayObject type, bool normalized, Int32 stride, UInt32 buffer, UInt32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribArrayObjectATI((UInt32)index, (Int32)size, (AtiVertexAttribArrayObject)type, (bool)normalized, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexBlendEnvfATI")]
            public static 
            void VertexBlendEnv(AtiVertexStreams pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexBlendEnvfATI((AtiVertexStreams)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexBlendEnviATI")]
            public static 
            void VertexBlendEnv(AtiVertexStreams pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexBlendEnviATI((AtiVertexStreams)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream1dATI")]
            public static 
            void VertexStream1(AtiVertexStreams stream, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1dATI((AtiVertexStreams)stream, (Double)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream1dvATI")]
            public static 
            unsafe void VertexStream1(AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1dvATI((AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream1fATI")]
            public static 
            void VertexStream1(AtiVertexStreams stream, Single x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1fATI((AtiVertexStreams)stream, (Single)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream1fvATI")]
            public static 
            unsafe void VertexStream1(AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1fvATI((AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream1iATI")]
            public static 
            void VertexStream1(AtiVertexStreams stream, Int32 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1iATI((AtiVertexStreams)stream, (Int32)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream1ivATI")]
            public static 
            unsafe void VertexStream1(AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1ivATI((AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream1sATI")]
            public static 
            void VertexStream1(AtiVertexStreams stream, Int16 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1sATI((AtiVertexStreams)stream, (Int16)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream1svATI")]
            public static 
            unsafe void VertexStream1(AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1svATI((AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2dATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2dATI((AtiVertexStreams)stream, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2dvATI")]
            public static 
            unsafe void VertexStream2(AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2dvATI((AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2dvATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, Double[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = coords)
                    {
                        Delegates.glVertexStream2dvATI((AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2dvATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, ref Double coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream2dvATI((AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2fATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2fATI((AtiVertexStreams)stream, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2fvATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, ref Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream2fvATI((AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2fvATI")]
            public static 
            unsafe void VertexStream2(AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2fvATI((AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2fvATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glVertexStream2fvATI((AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2iATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, Int32 x, Int32 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2iATI((AtiVertexStreams)stream, (Int32)x, (Int32)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2ivATI")]
            public static 
            unsafe void VertexStream2(AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2ivATI((AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2ivATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, Int32[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = coords)
                    {
                        Delegates.glVertexStream2ivATI((AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2ivATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, ref Int32 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream2ivATI((AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2sATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, Int16 x, Int16 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2sATI((AtiVertexStreams)stream, (Int16)x, (Int16)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2svATI")]
            public static 
            unsafe void VertexStream2(AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2svATI((AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2svATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, Int16[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = coords)
                    {
                        Delegates.glVertexStream2svATI((AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream2svATI")]
            public static 
            void VertexStream2(AtiVertexStreams stream, ref Int16 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream2svATI((AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3dATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3dATI((AtiVertexStreams)stream, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3dvATI")]
            public static 
            unsafe void VertexStream3(AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3dvATI((AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3dvATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, Double[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = coords)
                    {
                        Delegates.glVertexStream3dvATI((AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3dvATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, ref Double coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream3dvATI((AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3fATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3fATI((AtiVertexStreams)stream, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3fvATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, ref Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream3fvATI((AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3fvATI")]
            public static 
            unsafe void VertexStream3(AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3fvATI((AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3fvATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glVertexStream3fvATI((AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3iATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, Int32 x, Int32 y, Int32 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3iATI((AtiVertexStreams)stream, (Int32)x, (Int32)y, (Int32)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3ivATI")]
            public static 
            unsafe void VertexStream3(AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3ivATI((AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3ivATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, Int32[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = coords)
                    {
                        Delegates.glVertexStream3ivATI((AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3ivATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, ref Int32 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream3ivATI((AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3sATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, Int16 x, Int16 y, Int16 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3sATI((AtiVertexStreams)stream, (Int16)x, (Int16)y, (Int16)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3svATI")]
            public static 
            unsafe void VertexStream3(AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3svATI((AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3svATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, Int16[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = coords)
                    {
                        Delegates.glVertexStream3svATI((AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream3svATI")]
            public static 
            void VertexStream3(AtiVertexStreams stream, ref Int16 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream3svATI((AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4dATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4dATI((AtiVertexStreams)stream, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4dvATI")]
            public static 
            unsafe void VertexStream4(AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4dvATI((AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4dvATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, Double[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = coords)
                    {
                        Delegates.glVertexStream4dvATI((AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4dvATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, ref Double coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream4dvATI((AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4fATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4fATI((AtiVertexStreams)stream, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4fvATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, ref Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream4fvATI((AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4fvATI")]
            public static 
            unsafe void VertexStream4(AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4fvATI((AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4fvATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glVertexStream4fvATI((AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4iATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4iATI((AtiVertexStreams)stream, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4ivATI")]
            public static 
            unsafe void VertexStream4(AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4ivATI((AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4ivATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, Int32[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = coords)
                    {
                        Delegates.glVertexStream4ivATI((AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4ivATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, ref Int32 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream4ivATI((AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4sATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, Int16 x, Int16 y, Int16 z, Int16 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4sATI((AtiVertexStreams)stream, (Int16)x, (Int16)y, (Int16)z, (Int16)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4svATI")]
            public static 
            unsafe void VertexStream4(AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4svATI((AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4svATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, Int16[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = coords)
                    {
                        Delegates.glVertexStream4svATI((AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "AtiVertexStreams", Version = "1.2", EntryPoint = "glVertexStream4svATI")]
            public static 
            void VertexStream4(AtiVertexStreams stream, ref Int16 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream4svATI((AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

        }

        
        /// <summary>
        /// Operate on the accumulation buffer
        /// </summary>
        /// <param name="op">
        /// <para>
        /// Specifies the accumulation buffer operation. Symbolic constants GL_ACCUM, GL_LOAD, GL_ADD, GL_MULT, and GL_RETURN are accepted.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies a floating-point value used in the accumulation buffer operation. op determines how value is used.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glAccum")]
        public static 
        void Accum(AccumOp op, Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glAccum((AccumOp)op, (Single)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Select active texture unit
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies which texture unit to make active. The number of texture units is implementation dependent, but must be at least two. texture must be one of GL_TEXTURE, where i ranges from 0 to the larger of (GL_MAX_TEXTURE_COORDS - 1) and (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1). The initial value is GL_TEXTURE0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glActiveTexture")]
        public static 
        void ActiveTexture(TextureUnit texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glActiveTexture((TextureUnit)texture);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the alpha test function
        /// </summary>
        /// <param name="func">
        /// <para>
        /// Specifies the alpha comparison function. Symbolic constants GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, and GL_ALWAYS are accepted. The initial value is GL_ALWAYS.
        /// </para>
        /// </param>
        /// <param name="ref">
        /// <para>
        /// Specifies the reference value that incoming alpha values are compared to. This value is clamped to the range [0,1], where 0 represents the lowest possible alpha value and 1 the highest possible value. The initial reference value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glAlphaFunc")]
        public static 
        void AlphaFunc(AlphaFunction func, Single @ref)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glAlphaFunc((AlphaFunction)func, (Single)@ref);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        unsafe bool AreTexturesResident(Int32 n, Int32* textures, [Out] bool* residences)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glAreTexturesResident((Int32)n, (UInt32*)textures, (bool*)residences);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        bool AreTexturesResident(Int32 n, Int32[] textures, [Out] bool[] residences)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* textures_ptr = textures)
                fixed (bool* residences_ptr = residences)
                {
                    return Delegates.glAreTexturesResident((Int32)n, (UInt32*)textures_ptr, (bool*)residences_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        bool AreTexturesResident(Int32 n, ref Int32 textures, [Out] out bool residences)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* textures_ptr = &textures)
                fixed (bool* residences_ptr = &residences)
                {
                    bool retval = Delegates.glAreTexturesResident((Int32)n, (UInt32*)textures_ptr, (bool*)residences_ptr);
                    residences = *residences_ptr;
                    return retval;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        bool AreTexturesResident(Int32 n, ref UInt32 textures, [Out] out bool residences)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* textures_ptr = &textures)
                fixed (bool* residences_ptr = &residences)
                {
                    bool retval = Delegates.glAreTexturesResident((Int32)n, (UInt32*)textures_ptr, (bool*)residences_ptr);
                    residences = *residences_ptr;
                    return retval;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        unsafe bool AreTexturesResident(Int32 n, UInt32* textures, [Out] bool* residences)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glAreTexturesResident((Int32)n, (UInt32*)textures, (bool*)residences);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        bool AreTexturesResident(Int32 n, UInt32[] textures, [Out] bool[] residences)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* textures_ptr = textures)
                fixed (bool* residences_ptr = residences)
                {
                    return Delegates.glAreTexturesResident((Int32)n, (UInt32*)textures_ptr, (bool*)residences_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render a vertex using the specified vertex array element
        /// </summary>
        /// <param name="i">
        /// <para>
        /// Specifies an index into the enabled vertex data arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glArrayElement")]
        public static 
        void ArrayElement(Int32 i)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glArrayElement((Int32)i);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Attaches a shader object to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to which a shader object will be attached.
        /// </para>
        /// </param>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object that is to be attached.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glAttachShader")]
        public static 
        void AttachShader(Int32 program, Int32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glAttachShader((UInt32)program, (UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Attaches a shader object to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to which a shader object will be attached.
        /// </para>
        /// </param>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object that is to be attached.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glAttachShader")]
        public static 
        void AttachShader(UInt32 program, UInt32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glAttachShader((UInt32)program, (UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delimit the vertices of a primitive or a group of like primitives
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies the primitive or primitives that will be created from vertices presented between glBegin and the subsequent glEnd. Ten symbolic constants are accepted: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, and GL_POLYGON.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glBegin")]
        public static 
        void Begin(BeginMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            GraphicsContext.CurrentContext.ErrorChecking = false;
            #endif
            Delegates.glBegin((BeginMode)mode);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBeginConditionalRender")]
        public static 
        void BeginConditionalRender(Int32 id, ConditionalRenderType mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginConditionalRender((UInt32)id, (ConditionalRenderType)mode);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBeginConditionalRender")]
        public static 
        void BeginConditionalRender(UInt32 id, ConditionalRenderType mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginConditionalRender((UInt32)id, (ConditionalRenderType)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delimit the boundaries of a query object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target type of query object established between glBeginQuery and the subsequent glEndQuery. The symbolic constant must be GL_SAMPLES_PASSED.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBeginQuery")]
        public static 
        void BeginQuery(QueryTarget target, Int32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginQuery((QueryTarget)target, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delimit the boundaries of a query object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target type of query object established between glBeginQuery and the subsequent glEndQuery. The symbolic constant must be GL_SAMPLES_PASSED.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBeginQuery")]
        public static 
        void BeginQuery(QueryTarget target, UInt32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginQuery((QueryTarget)target, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBeginTransformFeedback")]
        public static 
        void BeginTransformFeedback(BeginFeedbackMode primitiveMode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginTransformFeedback((BeginFeedbackMode)primitiveMode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Associates a generic vertex attribute index with a named attribute variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object in which the association is to be made.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be bound.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies a null terminated string containing the name of the vertex shader attribute variable to which index is to be bound.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glBindAttribLocation")]
        public static 
        void BindAttribLocation(Int32 program, Int32 index, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindAttribLocation((UInt32)program, (UInt32)index, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Associates a generic vertex attribute index with a named attribute variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object in which the association is to be made.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be bound.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies a null terminated string containing the name of the vertex shader attribute variable to which index is to be bound.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glBindAttribLocation")]
        public static 
        void BindAttribLocation(UInt32 program, UInt32 index, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindAttribLocation((UInt32)program, (UInt32)index, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Bind a named buffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the buffer object is bound. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of a buffer object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBindBuffer")]
        public static 
        void BindBuffer(BufferTarget target, Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBuffer((BufferTarget)target, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Bind a named buffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the buffer object is bound. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of a buffer object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBindBuffer")]
        public static 
        void BindBuffer(BufferTarget target, UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBuffer((BufferTarget)target, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBindBufferBase")]
        public static 
        void BindBufferBase(BufferTarget target, Int32 index, Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBufferBase((BufferTarget)target, (UInt32)index, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBindBufferBase")]
        public static 
        void BindBufferBase(BufferTarget target, UInt32 index, UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBufferBase((BufferTarget)target, (UInt32)index, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBindBufferRange")]
        public static 
        void BindBufferRange(BufferTarget target, Int32 index, Int32 buffer, IntPtr offset, IntPtr size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBufferRange((BufferTarget)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBindBufferRange")]
        public static 
        void BindBufferRange(BufferTarget target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBufferRange((BufferTarget)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBindFragDataLocation")]
        public static 
        void BindFragDataLocation(Int32 program, Int32 color, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindFragDataLocation((UInt32)program, (UInt32)color, (String)name);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glBindFragDataLocation")]
        public static 
        void BindFragDataLocation(UInt32 program, UInt32 color, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindFragDataLocation((UInt32)program, (UInt32)color, (String)name);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glBindFramebuffer")]
        public static 
        void BindFramebuffer(FramebufferTarget target, Int32 framebuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindFramebuffer((FramebufferTarget)target, (UInt32)framebuffer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glBindFramebuffer")]
        public static 
        void BindFramebuffer(FramebufferTarget target, UInt32 framebuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindFramebuffer((FramebufferTarget)target, (UInt32)framebuffer);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glBindRenderbuffer")]
        public static 
        void BindRenderbuffer(RenderbufferTarget target, Int32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindRenderbuffer((RenderbufferTarget)target, (UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glBindRenderbuffer")]
        public static 
        void BindRenderbuffer(RenderbufferTarget target, UInt32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindRenderbuffer((RenderbufferTarget)target, (UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Bind a named texture to a texturing target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture is bound. Must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of a texture.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glBindTexture")]
        public static 
        void BindTexture(TextureTarget target, Int32 texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindTexture((TextureTarget)target, (UInt32)texture);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Bind a named texture to a texturing target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture is bound. Must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of a texture.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glBindTexture")]
        public static 
        void BindTexture(TextureTarget target, UInt32 texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindTexture((TextureTarget)target, (UInt32)texture);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glBindVertexArray")]
        public static 
        void BindVertexArray(Int32 array)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindVertexArray((UInt32)array);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glBindVertexArray")]
        public static 
        void BindVertexArray(UInt32 array)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindVertexArray((UInt32)array);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a bitmap
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specify the pixel width and height of the bitmap image.
        /// </para>
        /// </param>
        /// <param name="xorig">
        /// <para>
        /// Specify the location of the origin in the bitmap image. The origin is measured from the lower left corner of the bitmap, with right and up being the positive axes.
        /// </para>
        /// </param>
        /// <param name="xmove">
        /// <para>
        /// Specify the x and y offsets to be added to the current raster position after the bitmap is drawn.
        /// </para>
        /// </param>
        /// <param name="bitmap">
        /// <para>
        /// Specifies the address of the bitmap image.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glBitmap")]
        public static 
        unsafe void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, Byte* bitmap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBitmap((Int32)width, (Int32)height, (Single)xorig, (Single)yorig, (Single)xmove, (Single)ymove, (Byte*)bitmap);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a bitmap
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specify the pixel width and height of the bitmap image.
        /// </para>
        /// </param>
        /// <param name="xorig">
        /// <para>
        /// Specify the location of the origin in the bitmap image. The origin is measured from the lower left corner of the bitmap, with right and up being the positive axes.
        /// </para>
        /// </param>
        /// <param name="xmove">
        /// <para>
        /// Specify the x and y offsets to be added to the current raster position after the bitmap is drawn.
        /// </para>
        /// </param>
        /// <param name="bitmap">
        /// <para>
        /// Specifies the address of the bitmap image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glBitmap")]
        public static 
        void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, Byte[] bitmap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* bitmap_ptr = bitmap)
                {
                    Delegates.glBitmap((Int32)width, (Int32)height, (Single)xorig, (Single)yorig, (Single)xmove, (Single)ymove, (Byte*)bitmap_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a bitmap
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specify the pixel width and height of the bitmap image.
        /// </para>
        /// </param>
        /// <param name="xorig">
        /// <para>
        /// Specify the location of the origin in the bitmap image. The origin is measured from the lower left corner of the bitmap, with right and up being the positive axes.
        /// </para>
        /// </param>
        /// <param name="xmove">
        /// <para>
        /// Specify the x and y offsets to be added to the current raster position after the bitmap is drawn.
        /// </para>
        /// </param>
        /// <param name="bitmap">
        /// <para>
        /// Specifies the address of the bitmap image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glBitmap")]
        public static 
        void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, ref Byte bitmap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* bitmap_ptr = &bitmap)
                {
                    Delegates.glBitmap((Int32)width, (Int32)height, (Single)xorig, (Single)yorig, (Single)xmove, (Single)ymove, (Byte*)bitmap_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the blend color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// specify the components of GL_BLEND_COLOR
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glBlendColor")]
        public static 
        void BlendColor(Single red, Single green, Single blue, Single alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendColor((Single)red, (Single)green, (Single)blue, (Single)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// specifies how source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glBlendEquation")]
        public static 
        void BlendEquation(BlendEquationMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquation((BlendEquationMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// specifies how source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ArbDrawBuffersBlend", Version = "1.2", EntryPoint = "glBlendEquationi")]
        public static 
        void BlendEquation(Int32 buf, ArbDrawBuffersBlend mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationi((UInt32)buf, (ArbDrawBuffersBlend)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// specifies how source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawBuffersBlend", Version = "1.2", EntryPoint = "glBlendEquationi")]
        public static 
        void BlendEquation(UInt32 buf, ArbDrawBuffersBlend mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationi((UInt32)buf, (ArbDrawBuffersBlend)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="modeRGB">
        /// <para>
        /// specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        /// <param name="modeAlpha">
        /// <para>
        /// specifies the alpha blend equation, how the alpha component of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glBlendEquationSeparate")]
        public static 
        void BlendEquationSeparate(BlendEquationMode modeRGB, BlendEquationMode modeAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationSeparate((BlendEquationMode)modeRGB, (BlendEquationMode)modeAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="modeRGB">
        /// <para>
        /// specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        /// <param name="modeAlpha">
        /// <para>
        /// specifies the alpha blend equation, how the alpha component of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ArbDrawBuffersBlend", Version = "1.2", EntryPoint = "glBlendEquationSeparatei")]
        public static 
        void BlendEquationSeparate(Int32 buf, BlendEquationMode modeRGB, BlendEquationMode modeAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationSeparatei((UInt32)buf, (BlendEquationMode)modeRGB, (BlendEquationMode)modeAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="modeRGB">
        /// <para>
        /// specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        /// <param name="modeAlpha">
        /// <para>
        /// specifies the alpha blend equation, how the alpha component of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawBuffersBlend", Version = "1.2", EntryPoint = "glBlendEquationSeparatei")]
        public static 
        void BlendEquationSeparate(UInt32 buf, BlendEquationMode modeRGB, BlendEquationMode modeAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationSeparatei((UInt32)buf, (BlendEquationMode)modeRGB, (BlendEquationMode)modeAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify pixel arithmetic
        /// </summary>
        /// <param name="sfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha source blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glBlendFunc")]
        public static 
        void BlendFunc(BlendingFactorSrc sfactor, BlendingFactorDest dfactor)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFunc((BlendingFactorSrc)sfactor, (BlendingFactorDest)dfactor);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify pixel arithmetic
        /// </summary>
        /// <param name="sfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha source blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ArbDrawBuffersBlend", Version = "1.2", EntryPoint = "glBlendFunci")]
        public static 
        void BlendFunc(Int32 buf, ArbDrawBuffersBlend src, ArbDrawBuffersBlend dst)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFunci((UInt32)buf, (ArbDrawBuffersBlend)src, (ArbDrawBuffersBlend)dst);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify pixel arithmetic
        /// </summary>
        /// <param name="sfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha source blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawBuffersBlend", Version = "1.2", EntryPoint = "glBlendFunci")]
        public static 
        void BlendFunc(UInt32 buf, ArbDrawBuffersBlend src, ArbDrawBuffersBlend dst)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFunci((UInt32)buf, (ArbDrawBuffersBlend)src, (ArbDrawBuffersBlend)dst);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstRGB">
        /// <para>
        /// Specifies how the red, green, and blue destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The same symbolic constants are accepted as for srcRGB. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The same symbolic constants are accepted as for dstRGB. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glBlendFuncSeparate")]
        public static 
        void BlendFuncSeparate(BlendingFactorSrc sfactorRGB, BlendingFactorDest dfactorRGB, BlendingFactorSrc sfactorAlpha, BlendingFactorDest dfactorAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFuncSeparate((BlendingFactorSrc)sfactorRGB, (BlendingFactorDest)dfactorRGB, (BlendingFactorSrc)sfactorAlpha, (BlendingFactorDest)dfactorAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstRGB">
        /// <para>
        /// Specifies how the red, green, and blue destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The same symbolic constants are accepted as for srcRGB. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The same symbolic constants are accepted as for dstRGB. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ArbDrawBuffersBlend", Version = "1.2", EntryPoint = "glBlendFuncSeparatei")]
        public static 
        void BlendFuncSeparate(Int32 buf, ArbDrawBuffersBlend srcRGB, ArbDrawBuffersBlend dstRGB, ArbDrawBuffersBlend srcAlpha, ArbDrawBuffersBlend dstAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFuncSeparatei((UInt32)buf, (ArbDrawBuffersBlend)srcRGB, (ArbDrawBuffersBlend)dstRGB, (ArbDrawBuffersBlend)srcAlpha, (ArbDrawBuffersBlend)dstAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstRGB">
        /// <para>
        /// Specifies how the red, green, and blue destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The same symbolic constants are accepted as for srcRGB. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The same symbolic constants are accepted as for dstRGB. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawBuffersBlend", Version = "1.2", EntryPoint = "glBlendFuncSeparatei")]
        public static 
        void BlendFuncSeparate(UInt32 buf, ArbDrawBuffersBlend srcRGB, ArbDrawBuffersBlend dstRGB, ArbDrawBuffersBlend srcAlpha, ArbDrawBuffersBlend dstAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFuncSeparatei((UInt32)buf, (ArbDrawBuffersBlend)srcRGB, (ArbDrawBuffersBlend)dstRGB, (ArbDrawBuffersBlend)srcAlpha, (ArbDrawBuffersBlend)dstAlpha);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glBlitFramebuffer")]
        public static 
        void BlitFramebuffer(Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, ClearBufferMask mask, BlitFramebufferFilter filter)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlitFramebuffer((Int32)srcX0, (Int32)srcY0, (Int32)srcX1, (Int32)srcY1, (Int32)dstX0, (Int32)dstY0, (Int32)dstX1, (Int32)dstY1, (ClearBufferMask)mask, (BlitFramebufferFilter)filter);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData<T2>(BufferTarget target, IntPtr size, [In, Out] ref T2 data, BufferUsageHint usage)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferData((BufferTarget)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (BufferUsageHint)usage);
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData<T2>(BufferTarget target, IntPtr size, [In, Out] T2[,,] data, BufferUsageHint usage)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferData((BufferTarget)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (BufferUsageHint)usage);
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData<T2>(BufferTarget target, IntPtr size, [In, Out] T2[,] data, BufferUsageHint usage)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferData((BufferTarget)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (BufferUsageHint)usage);
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData<T2>(BufferTarget target, IntPtr size, [In, Out] T2[] data, BufferUsageHint usage)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferData((BufferTarget)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (BufferUsageHint)usage);
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Creates and initializes a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the buffer object's new data store.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.
        /// </para>
        /// </param>
        /// <param name="usage">
        /// <para>
        /// Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData(BufferTarget target, IntPtr size, IntPtr data, BufferUsageHint usage)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBufferData((BufferTarget)target, (IntPtr)size, (IntPtr)data, (BufferUsageHint)usage);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData<T3>(BufferTarget target, IntPtr offset, IntPtr size, [In, Out] ref T3 data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData<T3>(BufferTarget target, IntPtr offset, IntPtr size, [In, Out] T3[,,] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData<T3>(BufferTarget target, IntPtr offset, IntPtr size, [In, Out] T3[,] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData<T3>(BufferTarget target, IntPtr offset, IntPtr size, [In, Out] T3[] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Updates a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being replaced.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the new data that will be copied into the data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData(BufferTarget target, IntPtr offset, IntPtr size, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Execute a display list
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies the integer name of the display list to be executed.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glCallList")]
        public static 
        void CallList(Int32 list)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCallList((UInt32)list);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Execute a display list
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies the integer name of the display list to be executed.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glCallList")]
        public static 
        void CallList(UInt32 list)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCallList((UInt32)list);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Execute a list of display lists
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of display lists to be executed.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of values in lists. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, and GL_4_BYTES are accepted.
        /// </para>
        /// </param>
        /// <param name="lists">
        /// <para>
        /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists<T2>(Int32 n, ListNameType type, [In, Out] ref T2 lists)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle lists_ptr = GCHandle.Alloc(lists, GCHandleType.Pinned);
            try
            {
                Delegates.glCallLists((Int32)n, (ListNameType)type, (IntPtr)lists_ptr.AddrOfPinnedObject());
            }
            finally
            {
                lists_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Execute a list of display lists
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of display lists to be executed.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of values in lists. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, and GL_4_BYTES are accepted.
        /// </para>
        /// </param>
        /// <param name="lists">
        /// <para>
        /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists<T2>(Int32 n, ListNameType type, [In, Out] T2[,,] lists)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle lists_ptr = GCHandle.Alloc(lists, GCHandleType.Pinned);
            try
            {
                Delegates.glCallLists((Int32)n, (ListNameType)type, (IntPtr)lists_ptr.AddrOfPinnedObject());
            }
            finally
            {
                lists_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Execute a list of display lists
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of display lists to be executed.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of values in lists. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, and GL_4_BYTES are accepted.
        /// </para>
        /// </param>
        /// <param name="lists">
        /// <para>
        /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists<T2>(Int32 n, ListNameType type, [In, Out] T2[,] lists)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle lists_ptr = GCHandle.Alloc(lists, GCHandleType.Pinned);
            try
            {
                Delegates.glCallLists((Int32)n, (ListNameType)type, (IntPtr)lists_ptr.AddrOfPinnedObject());
            }
            finally
            {
                lists_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Execute a list of display lists
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of display lists to be executed.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of values in lists. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, and GL_4_BYTES are accepted.
        /// </para>
        /// </param>
        /// <param name="lists">
        /// <para>
        /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists<T2>(Int32 n, ListNameType type, [In, Out] T2[] lists)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle lists_ptr = GCHandle.Alloc(lists, GCHandleType.Pinned);
            try
            {
                Delegates.glCallLists((Int32)n, (ListNameType)type, (IntPtr)lists_ptr.AddrOfPinnedObject());
            }
            finally
            {
                lists_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Execute a list of display lists
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of display lists to be executed.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of values in lists. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, and GL_4_BYTES are accepted.
        /// </para>
        /// </param>
        /// <param name="lists">
        /// <para>
        /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists(Int32 n, ListNameType type, IntPtr lists)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCallLists((Int32)n, (ListNameType)type, (IntPtr)lists);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glCheckFramebufferStatus")]
        public static 
        FramebufferErrorCode CheckFramebufferStatus(FramebufferTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glCheckFramebufferStatus((FramebufferTarget)target);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClampColor")]
        public static 
        void ClampColor(ClampColorTarget target, ClampColorMode clamp)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClampColor((ClampColorTarget)target, (ClampColorMode)clamp);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Clear buffers to preset values
        /// </summary>
        /// <param name="mask">
        /// <para>
        /// Bitwise OR of masks that indicate the buffers to be cleared. The four masks are GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, GL_ACCUM_BUFFER_BIT, and GL_STENCIL_BUFFER_BIT.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glClear")]
        public static 
        void Clear(ClearBufferMask mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClear((ClearBufferMask)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify clear values for the accumulation buffer
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify the red, green, blue, and alpha values used when the accumulation buffer is cleared. The initial values are all 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glClearAccum")]
        public static 
        void ClearAccum(Single red, Single green, Single blue, Single alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearAccum((Single)red, (Single)green, (Single)blue, (Single)alpha);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferfi")]
        public static 
        void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, Single depth, Int32 stencil)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferfi((ClearBuffer)buffer, (Int32)drawbuffer, (Single)depth, (Int32)stencil);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferfv")]
        public static 
        void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glClearBufferfv((ClearBuffer)buffer, (Int32)drawbuffer, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferfv")]
        public static 
        unsafe void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferfv((ClearBuffer)buffer, (Int32)drawbuffer, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferfv")]
        public static 
        void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glClearBufferfv((ClearBuffer)buffer, (Int32)drawbuffer, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferiv")]
        public static 
        unsafe void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferiv((ClearBuffer)buffer, (Int32)drawbuffer, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferiv")]
        public static 
        void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, Int32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = value)
                {
                    Delegates.glClearBufferiv((ClearBuffer)buffer, (Int32)drawbuffer, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferiv")]
        public static 
        void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, ref Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = &value)
                {
                    Delegates.glClearBufferiv((ClearBuffer)buffer, (Int32)drawbuffer, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferuiv")]
        public static 
        void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, ref UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = &value)
                {
                    Delegates.glClearBufferuiv((ClearBuffer)buffer, (Int32)drawbuffer, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferuiv")]
        public static 
        unsafe void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferuiv((ClearBuffer)buffer, (Int32)drawbuffer, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glClearBufferuiv")]
        public static 
        void ClearBuffer(ClearBuffer buffer, Int32 drawbuffer, UInt32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = value)
                {
                    Delegates.glClearBufferuiv((ClearBuffer)buffer, (Int32)drawbuffer, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify clear values for the color buffers
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify the red, green, blue, and alpha values used when the color buffers are cleared. The initial values are all 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glClearColor")]
        public static 
        void ClearColor(Single red, Single green, Single blue, Single alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearColor((Single)red, (Single)green, (Single)blue, (Single)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the clear value for the depth buffer
        /// </summary>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth value used when the depth buffer is cleared. The initial value is 1.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glClearDepth")]
        public static 
        void ClearDepth(Double depth)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearDepth((Double)depth);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the clear value for the color index buffers
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the index used when the color index buffers are cleared. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glClearIndex")]
        public static 
        void ClearIndex(Single c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearIndex((Single)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the clear value for the stencil buffer
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specifies the index used when the stencil buffer is cleared. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glClearStencil")]
        public static 
        void ClearStencil(Int32 s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearStencil((Int32)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Select active texture unit
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies which texture unit to make active. The number of texture units is implementation dependent, but must be at least two. texture must be one of GL_TEXTURE, where i ranges from 0 to the value of GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value. The initial value is GL_TEXTURE0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glClientActiveTexture")]
        public static 
        void ClientActiveTexture(TextureUnit texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClientActiveTexture((TextureUnit)texture);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glClientWaitSync")]
        public static 
        ArbSync ClientWaitSync(IntPtr sync, Int32 flags, Int64 timeout)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glClientWaitSync((IntPtr)sync, (UInt32)flags, (UInt64)timeout);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glClientWaitSync")]
        public static 
        ArbSync ClientWaitSync(IntPtr sync, UInt32 flags, UInt64 timeout)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glClientWaitSync((IntPtr)sync, (UInt32)flags, (UInt64)timeout);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a plane against which all geometry is clipped
        /// </summary>
        /// <param name="plane">
        /// <para>
        /// Specifies which clipping plane is being positioned. Symbolic names of the form GL_CLIP_PLANEi, where i is an integer between 0 and GL_MAX_CLIP_PLANES - 1, are accepted.
        /// </para>
        /// </param>
        /// <param name="equation">
        /// <para>
        /// Specifies the address of an array of four double-precision floating-point values. These values are interpreted as a plane equation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glClipPlane")]
        public static 
        unsafe void ClipPlane(ClipPlaneName plane, Double* equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClipPlane((ClipPlaneName)plane, (Double*)equation);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a plane against which all geometry is clipped
        /// </summary>
        /// <param name="plane">
        /// <para>
        /// Specifies which clipping plane is being positioned. Symbolic names of the form GL_CLIP_PLANEi, where i is an integer between 0 and GL_MAX_CLIP_PLANES - 1, are accepted.
        /// </para>
        /// </param>
        /// <param name="equation">
        /// <para>
        /// Specifies the address of an array of four double-precision floating-point values. These values are interpreted as a plane equation.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glClipPlane")]
        public static 
        void ClipPlane(ClipPlaneName plane, Double[] equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* equation_ptr = equation)
                {
                    Delegates.glClipPlane((ClipPlaneName)plane, (Double*)equation_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a plane against which all geometry is clipped
        /// </summary>
        /// <param name="plane">
        /// <para>
        /// Specifies which clipping plane is being positioned. Symbolic names of the form GL_CLIP_PLANEi, where i is an integer between 0 and GL_MAX_CLIP_PLANES - 1, are accepted.
        /// </para>
        /// </param>
        /// <param name="equation">
        /// <para>
        /// Specifies the address of an array of four double-precision floating-point values. These values are interpreted as a plane equation.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glClipPlane")]
        public static 
        void ClipPlane(ClipPlaneName plane, ref Double equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* equation_ptr = &equation)
                {
                    Delegates.glClipPlane((ClipPlaneName)plane, (Double*)equation_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3b")]
        public static 
        void Color3(SByte red, SByte green, SByte blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3b((SByte)red, (SByte)green, (SByte)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3bv")]
        public static 
        void Color3(ref SByte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = &v)
                {
                    Delegates.glColor3bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3bv")]
        public static 
        unsafe void Color3(SByte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3bv((SByte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3bv")]
        public static 
        void Color3(SByte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = v)
                {
                    Delegates.glColor3bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3d")]
        public static 
        void Color3(Double red, Double green, Double blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3d((Double)red, (Double)green, (Double)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3dv")]
        public static 
        unsafe void Color3(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3dv")]
        public static 
        void Color3(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glColor3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3dv")]
        public static 
        void Color3(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glColor3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3f")]
        public static 
        void Color3(Single red, Single green, Single blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3f((Single)red, (Single)green, (Single)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3fv")]
        public static 
        void Color3(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glColor3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3fv")]
        public static 
        unsafe void Color3(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3fv")]
        public static 
        void Color3(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glColor3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3i")]
        public static 
        void Color3(Int32 red, Int32 green, Int32 blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3i((Int32)red, (Int32)green, (Int32)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3iv")]
        public static 
        unsafe void Color3(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3iv")]
        public static 
        void Color3(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glColor3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3iv")]
        public static 
        void Color3(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glColor3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3s")]
        public static 
        void Color3(Int16 red, Int16 green, Int16 blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3s((Int16)red, (Int16)green, (Int16)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3sv")]
        public static 
        unsafe void Color3(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3sv")]
        public static 
        void Color3(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glColor3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3sv")]
        public static 
        void Color3(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glColor3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3ub")]
        public static 
        void Color3(Byte red, Byte green, Byte blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3ub((Byte)red, (Byte)green, (Byte)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3ubv")]
        public static 
        unsafe void Color3(Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3ubv((Byte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3ubv")]
        public static 
        void Color3(Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glColor3ubv((Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3ubv")]
        public static 
        void Color3(ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glColor3ubv((Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3ui")]
        public static 
        void Color3(UInt32 red, UInt32 green, UInt32 blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3ui((UInt32)red, (UInt32)green, (UInt32)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3uiv")]
        public static 
        void Color3(ref UInt32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = &v)
                {
                    Delegates.glColor3uiv((UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3uiv")]
        public static 
        unsafe void Color3(UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3uiv((UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3uiv")]
        public static 
        void Color3(UInt32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = v)
                {
                    Delegates.glColor3uiv((UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3us")]
        public static 
        void Color3(UInt16 red, UInt16 green, UInt16 blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3us((UInt16)red, (UInt16)green, (UInt16)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3usv")]
        public static 
        void Color3(ref UInt16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = &v)
                {
                    Delegates.glColor3usv((UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3usv")]
        public static 
        unsafe void Color3(UInt16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor3usv((UInt16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor3usv")]
        public static 
        void Color3(UInt16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = v)
                {
                    Delegates.glColor3usv((UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4b")]
        public static 
        void Color4(SByte red, SByte green, SByte blue, SByte alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4b((SByte)red, (SByte)green, (SByte)blue, (SByte)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4bv")]
        public static 
        void Color4(ref SByte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = &v)
                {
                    Delegates.glColor4bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4bv")]
        public static 
        unsafe void Color4(SByte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4bv((SByte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4bv")]
        public static 
        void Color4(SByte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = v)
                {
                    Delegates.glColor4bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4d")]
        public static 
        void Color4(Double red, Double green, Double blue, Double alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4d((Double)red, (Double)green, (Double)blue, (Double)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4dv")]
        public static 
        unsafe void Color4(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4dv")]
        public static 
        void Color4(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glColor4dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4dv")]
        public static 
        void Color4(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glColor4dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4f")]
        public static 
        void Color4(Single red, Single green, Single blue, Single alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4f((Single)red, (Single)green, (Single)blue, (Single)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4fv")]
        public static 
        void Color4(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glColor4fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4fv")]
        public static 
        unsafe void Color4(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4fv")]
        public static 
        void Color4(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glColor4fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4i")]
        public static 
        void Color4(Int32 red, Int32 green, Int32 blue, Int32 alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4i((Int32)red, (Int32)green, (Int32)blue, (Int32)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4iv")]
        public static 
        unsafe void Color4(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4iv")]
        public static 
        void Color4(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glColor4iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4iv")]
        public static 
        void Color4(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glColor4iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4s")]
        public static 
        void Color4(Int16 red, Int16 green, Int16 blue, Int16 alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4s((Int16)red, (Int16)green, (Int16)blue, (Int16)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4sv")]
        public static 
        unsafe void Color4(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4sv")]
        public static 
        void Color4(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glColor4sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4sv")]
        public static 
        void Color4(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glColor4sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4ub")]
        public static 
        void Color4(Byte red, Byte green, Byte blue, Byte alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4ub((Byte)red, (Byte)green, (Byte)blue, (Byte)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4ubv")]
        public static 
        unsafe void Color4(Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4ubv((Byte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4ubv")]
        public static 
        void Color4(Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glColor4ubv((Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4ubv")]
        public static 
        void Color4(ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glColor4ubv((Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4ui")]
        public static 
        void Color4(UInt32 red, UInt32 green, UInt32 blue, UInt32 alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4ui((UInt32)red, (UInt32)green, (UInt32)blue, (UInt32)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4uiv")]
        public static 
        void Color4(ref UInt32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = &v)
                {
                    Delegates.glColor4uiv((UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4uiv")]
        public static 
        unsafe void Color4(UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4uiv((UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4uiv")]
        public static 
        void Color4(UInt32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = v)
                {
                    Delegates.glColor4uiv((UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4us")]
        public static 
        void Color4(UInt16 red, UInt16 green, UInt16 blue, UInt16 alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4us((UInt16)red, (UInt16)green, (UInt16)blue, (UInt16)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4usv")]
        public static 
        void Color4(ref UInt16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = &v)
                {
                    Delegates.glColor4usv((UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4usv")]
        public static 
        unsafe void Color4(UInt16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColor4usv((UInt16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current color.
        /// </para>
        /// </param>
        /// <param name="alpha">
        /// <para>
        /// Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColor4usv")]
        public static 
        void Color4(UInt16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = v)
                {
                    Delegates.glColor4usv((UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable and disable writing of frame buffer color components
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify whether red, green, blue, and alpha can or cannot be written into the frame buffer. The initial values are all GL_TRUE, indicating that the color components can be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glColorMask")]
        public static 
        void ColorMask(bool red, bool green, bool blue, bool alpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorMask((bool)red, (bool)green, (bool)blue, (bool)alpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable and disable writing of frame buffer color components
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify whether red, green, blue, and alpha can or cannot be written into the frame buffer. The initial values are all GL_TRUE, indicating that the color components can be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glColorMaski")]
        public static 
        void ColorMask(Int32 index, bool r, bool g, bool b, bool a)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorMaski((UInt32)index, (bool)r, (bool)g, (bool)b, (bool)a);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable and disable writing of frame buffer color components
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify whether red, green, blue, and alpha can or cannot be written into the frame buffer. The initial values are all GL_TRUE, indicating that the color components can be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glColorMaski")]
        public static 
        void ColorMask(UInt32 index, bool r, bool g, bool b, bool a)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorMaski((UInt32)index, (bool)r, (bool)g, (bool)b, (bool)a);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Cause a material color to track the current color
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether front, back, or both front and back material parameters should track the current color. Accepted values are GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK. The initial value is GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies which of several material parameters track the current color. Accepted values are GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, and GL_AMBIENT_AND_DIFFUSE. The initial value is GL_AMBIENT_AND_DIFFUSE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glColorMaterial")]
        public static 
        void ColorMaterial(MaterialFace face, ColorMaterialParameter mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorMaterial((MaterialFace)face, (ColorMaterialParameter)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] ref T3 pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[,,] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[,] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer(Int32 size, ColorPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable<T5>(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, [In, Out] ref T5 data)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glColorSubTable((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable<T5>(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, [In, Out] T5[,,] data)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glColorSubTable((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable<T5>(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, [In, Out] T5[,] data)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glColorSubTable((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable<T5>(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, [In, Out] T5[] data)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glColorSubTable((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorSubTable((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable<T5>(ColorTableTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T5 table)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glColorTable((ColorTableTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable<T5>(ColorTableTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,,] table)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glColorTable((ColorTableTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable<T5>(ColorTableTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,] table)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glColorTable((ColorTableTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable<T5>(ColorTableTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[] table)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glColorTable((ColorTableTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable(ColorTableTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, IntPtr table)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorTable((ColorTableTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTableParameterfv")]
        public static 
        void ColorTableParameter(ColorTableTarget target, ColorTableParameterPName pname, ref Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glColorTableParameterfv((ColorTableTarget)target, (ColorTableParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTableParameterfv")]
        public static 
        unsafe void ColorTableParameter(ColorTableTarget target, ColorTableParameterPName pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorTableParameterfv((ColorTableTarget)target, (ColorTableParameterPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTableParameterfv")]
        public static 
        void ColorTableParameter(ColorTableTarget target, ColorTableParameterPName pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glColorTableParameterfv((ColorTableTarget)target, (ColorTableParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTableParameteriv")]
        public static 
        unsafe void ColorTableParameter(ColorTableTarget target, ColorTableParameterPName pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorTableParameteriv((ColorTableTarget)target, (ColorTableParameterPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTableParameteriv")]
        public static 
        void ColorTableParameter(ColorTableTarget target, ColorTableParameterPName pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glColorTableParameteriv((ColorTableTarget)target, (ColorTableParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glColorTableParameteriv")]
        public static 
        void ColorTableParameter(ColorTableTarget target, ColorTableParameterPName pname, ref Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glColorTableParameteriv((ColorTableTarget)target, (ColorTableParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Compiles a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be compiled.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glCompileShader")]
        public static 
        void CompileShader(Int32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompileShader((UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Compiles a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be compiled.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glCompileShader")]
        public static 
        void CompileShader(UInt32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompileShader((UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D<T6>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] ref T6 data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D<T6>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T6[,,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D<T6>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T6[,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D<T6>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T6[] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] ref T7 data)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T7[,,] data)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T7[,] data)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T7[] data)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2 sup n + 2 ( border ) for some integer . All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] ref T8 data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T8[,,] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T8[,] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T8[] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] ref T6 data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T6[,,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T6[,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T6[] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] ref T8 data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T8[,,] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T8[,] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T8[] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] ref T10 data)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T10[,,] data)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T10[,] data)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T10[] data)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the compressed image data stored at address data.
        /// </para>
        /// </param>
        /// <param name="imageSize">
        /// <para>
        /// Specifies the number of unsigned bytes of image data starting at the address specified by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the compressed image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D<T5>(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T5 image)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter1D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D<T5>(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,,] image)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter1D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D<T5>(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,] image)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter1D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D<T5>(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[] image)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter1D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, IntPtr image)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionFilter1D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D<T6>(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T6 image)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter2D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D<T6>(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,,] image)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter2D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D<T6>(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,] image)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter2D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D<T6>(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[] image)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter2D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr image)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionFilter2D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionParameterf")]
        public static 
        void ConvolutionParameter(ConvolutionTarget target, ConvolutionParameter pname, Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionParameterf((ConvolutionTarget)target, (ConvolutionParameter)pname, (Single)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionParameterfv")]
        public static 
        unsafe void ConvolutionParameter(ConvolutionTarget target, ConvolutionParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionParameterfv((ConvolutionTarget)target, (ConvolutionParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionParameterfv")]
        public static 
        void ConvolutionParameter(ConvolutionTarget target, ConvolutionParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glConvolutionParameterfv((ConvolutionTarget)target, (ConvolutionParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionParameteri")]
        public static 
        void ConvolutionParameter(ConvolutionTarget target, ConvolutionParameter pname, Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionParameteri((ConvolutionTarget)target, (ConvolutionParameter)pname, (Int32)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionParameteriv")]
        public static 
        unsafe void ConvolutionParameter(ConvolutionTarget target, ConvolutionParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionParameteriv((ConvolutionTarget)target, (ConvolutionParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glConvolutionParameteriv")]
        public static 
        void ConvolutionParameter(ConvolutionTarget target, ConvolutionParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glConvolutionParameteriv((ConvolutionTarget)target, (ConvolutionParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbCopyBuffer", Version = "3.0", EntryPoint = "glCopyBufferSubData")]
        public static 
        void CopyBufferSubData(BufferTarget readTarget, BufferTarget writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyBufferSubData((BufferTarget)readTarget, (BufferTarget)writeTarget, (IntPtr)readOffset, (IntPtr)writeOffset, (IntPtr)size);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The window coordinates of the left corner of the row of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glCopyColorSubTable")]
        public static 
        void CopyColorSubTable(ColorTableTarget target, Int32 start, Int32 x, Int32 y, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyColorSubTable((ColorTableTarget)target, (Int32)start, (Int32)x, (Int32)y, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy pixels into a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The color table target. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal storage format of the texture image. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The x coordinate of the lower-left corner of the pixel rectangle to be transferred to the color table.
        /// </para>
        /// </param>
        /// <param name="y">
        /// <para>
        /// The y coordinate of the lower-left corner of the pixel rectangle to be transferred to the color table.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glCopyColorTable")]
        public static 
        void CopyColorTable(ColorTableTarget target, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyColorTable((ColorTableTarget)target, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy pixels into a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The window space coordinates of the lower-left coordinate of the pixel array to copy.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array to copy.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glCopyConvolutionFilter1D")]
        public static 
        void CopyConvolutionFilter1D(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyConvolutionFilter1D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy pixels into a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The window space coordinates of the lower-left coordinate of the pixel array to copy.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array to copy.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array to copy.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glCopyConvolutionFilter2D")]
        public static 
        void CopyConvolutionFilter2D(ConvolutionTarget target, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyConvolutionFilter2D((ConvolutionTarget)target, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy pixels in the frame buffer
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the rectangular region of pixels to be copied. Both must be nonnegative.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies whether color values, depth values, or stencil values are to be copied. Symbolic constants GL_COLOR, GL_DEPTH, and GL_STENCIL are accepted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glCopyPixels")]
        public static 
        void CopyPixels(Int32 x, Int32 y, Int32 width, Int32 height, PixelCopyType type)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyPixels((Int32)x, (Int32)y, (Int32)width, (Int32)height, (PixelCopyType)type);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy pixels into a 1D texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format of the texture. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the left corner of the row of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. Must be 0 or 2 sup n + 2 ( border ) for some integer . The height of the texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glCopyTexImage1D")]
        public static 
        void CopyTexImage1D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy pixels into a 2D texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format of the texture. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. Must be 0 or 2 sup n + 2 ( border ) for some integer .
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. Must be 0 or 2 sup m + 2 ( border ) for some integer .
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glCopyTexImage2D")]
        public static 
        void CopyTexImage2D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies the texel offset within the texture array.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the left corner of the row of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glCopyTexSubImage1D")]
        public static 
        void CopyTexSubImage1D(TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glCopyTexSubImage2D")]
        public static 
        void CopyTexSubImage2D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Copy a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glCopyTexSubImage3D")]
        public static 
        void CopyTexSubImage3D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Creates a program object
        /// </summary>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glCreateProgram")]
        public static 
        Int32 CreateProgram()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glCreateProgram();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Creates a shader object
        /// </summary>
        /// <param name="shaderType">
        /// <para>
        /// Specifies the type of shader to be created. Must be either GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glCreateShader")]
        public static 
        Int32 CreateShader(ShaderType type)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glCreateShader((ShaderType)type);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify whether front- or back-facing facets can be culled
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies whether front- or back-facing facets are candidates for culling. Symbolic constants GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK are accepted. The initial value is GL_BACK.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glCullFace")]
        public static 
        void CullFace(CullFaceMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCullFace((CullFaceMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteBuffers")]
        public static 
        unsafe void DeleteBuffers(Int32 n, Int32* buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteBuffers((Int32)n, (UInt32*)buffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteBuffers")]
        public static 
        void DeleteBuffers(Int32 n, Int32[] buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* buffers_ptr = buffers)
                {
                    Delegates.glDeleteBuffers((Int32)n, (UInt32*)buffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteBuffers")]
        public static 
        void DeleteBuffers(Int32 n, ref Int32 buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* buffers_ptr = &buffers)
                {
                    Delegates.glDeleteBuffers((Int32)n, (UInt32*)buffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteBuffers")]
        public static 
        void DeleteBuffers(Int32 n, ref UInt32 buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* buffers_ptr = &buffers)
                {
                    Delegates.glDeleteBuffers((Int32)n, (UInt32*)buffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteBuffers")]
        public static 
        unsafe void DeleteBuffers(Int32 n, UInt32* buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteBuffers((Int32)n, (UInt32*)buffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named buffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array of buffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteBuffers")]
        public static 
        void DeleteBuffers(Int32 n, UInt32[] buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* buffers_ptr = buffers)
                {
                    Delegates.glDeleteBuffers((Int32)n, (UInt32*)buffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
        public static 
        unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteFramebuffers((Int32)n, (UInt32*)framebuffers);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
        public static 
        void DeleteFramebuffers(Int32 n, Int32[] framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* framebuffers_ptr = framebuffers)
                {
                    Delegates.glDeleteFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
        public static 
        void DeleteFramebuffers(Int32 n, ref Int32 framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* framebuffers_ptr = &framebuffers)
                {
                    Delegates.glDeleteFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
        public static 
        void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* framebuffers_ptr = &framebuffers)
                {
                    Delegates.glDeleteFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
        public static 
        unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteFramebuffers((Int32)n, (UInt32*)framebuffers);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
        public static 
        void DeleteFramebuffers(Int32 n, UInt32[] framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* framebuffers_ptr = framebuffers)
                {
                    Delegates.glDeleteFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete a contiguous group of display lists
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies the integer name of the first display list to delete.
        /// </para>
        /// </param>
        /// <param name="range">
        /// <para>
        /// Specifies the number of display lists to delete.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glDeleteLists")]
        public static 
        void DeleteLists(Int32 list, Int32 range)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteLists((UInt32)list, (Int32)range);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete a contiguous group of display lists
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies the integer name of the first display list to delete.
        /// </para>
        /// </param>
        /// <param name="range">
        /// <para>
        /// Specifies the number of display lists to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glDeleteLists")]
        public static 
        void DeleteLists(UInt32 list, Int32 range)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteLists((UInt32)list, (Int32)range);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDeleteProgram")]
        public static 
        void DeleteProgram(Int32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDeleteProgram")]
        public static 
        void DeleteProgram(UInt32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteQueries")]
        public static 
        unsafe void DeleteQueries(Int32 n, Int32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteQueries((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteQueries")]
        public static 
        void DeleteQueries(Int32 n, Int32[] ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = ids)
                {
                    Delegates.glDeleteQueries((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteQueries")]
        public static 
        void DeleteQueries(Int32 n, ref Int32 ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = &ids)
                {
                    Delegates.glDeleteQueries((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteQueries")]
        public static 
        void DeleteQueries(Int32 n, ref UInt32 ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = &ids)
                {
                    Delegates.glDeleteQueries((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteQueries")]
        public static 
        unsafe void DeleteQueries(Int32 n, UInt32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteQueries((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named query objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of query objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glDeleteQueries")]
        public static 
        void DeleteQueries(Int32 n, UInt32[] ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = ids)
                {
                    Delegates.glDeleteQueries((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
        public static 
        unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteRenderbuffers((Int32)n, (UInt32*)renderbuffers);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
        public static 
        void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* renderbuffers_ptr = renderbuffers)
                {
                    Delegates.glDeleteRenderbuffers((Int32)n, (UInt32*)renderbuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
        public static 
        void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* renderbuffers_ptr = &renderbuffers)
                {
                    Delegates.glDeleteRenderbuffers((Int32)n, (UInt32*)renderbuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
        public static 
        void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* renderbuffers_ptr = &renderbuffers)
                {
                    Delegates.glDeleteRenderbuffers((Int32)n, (UInt32*)renderbuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
        public static 
        unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteRenderbuffers((Int32)n, (UInt32*)renderbuffers);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
        public static 
        void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* renderbuffers_ptr = renderbuffers)
                {
                    Delegates.glDeleteRenderbuffers((Int32)n, (UInt32*)renderbuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Deletes a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDeleteShader")]
        public static 
        void DeleteShader(Int32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteShader((UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Deletes a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDeleteShader")]
        public static 
        void DeleteShader(UInt32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteShader((UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glDeleteSync")]
        public static 
        void DeleteSync(IntPtr sync)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteSync((IntPtr)sync);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDeleteTextures")]
        public static 
        unsafe void DeleteTextures(Int32 n, Int32* textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteTextures((Int32)n, (UInt32*)textures);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDeleteTextures")]
        public static 
        void DeleteTextures(Int32 n, Int32[] textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* textures_ptr = textures)
                {
                    Delegates.glDeleteTextures((Int32)n, (UInt32*)textures_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDeleteTextures")]
        public static 
        void DeleteTextures(Int32 n, ref Int32 textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* textures_ptr = &textures)
                {
                    Delegates.glDeleteTextures((Int32)n, (UInt32*)textures_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDeleteTextures")]
        public static 
        void DeleteTextures(Int32 n, ref UInt32 textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* textures_ptr = &textures)
                {
                    Delegates.glDeleteTextures((Int32)n, (UInt32*)textures_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDeleteTextures")]
        public static 
        unsafe void DeleteTextures(Int32 n, UInt32* textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteTextures((Int32)n, (UInt32*)textures);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDeleteTextures")]
        public static 
        void DeleteTextures(Int32 n, UInt32[] textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* textures_ptr = textures)
                {
                    Delegates.glDeleteTextures((Int32)n, (UInt32*)textures_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
        public static 
        unsafe void DeleteVertexArrays(Int32 n, Int32* arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteVertexArrays((Int32)n, (UInt32*)arrays);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
        public static 
        void DeleteVertexArrays(Int32 n, Int32[] arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* arrays_ptr = arrays)
                {
                    Delegates.glDeleteVertexArrays((Int32)n, (UInt32*)arrays_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
        public static 
        void DeleteVertexArrays(Int32 n, ref Int32 arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* arrays_ptr = &arrays)
                {
                    Delegates.glDeleteVertexArrays((Int32)n, (UInt32*)arrays_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
        public static 
        void DeleteVertexArrays(Int32 n, ref UInt32 arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* arrays_ptr = &arrays)
                {
                    Delegates.glDeleteVertexArrays((Int32)n, (UInt32*)arrays_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
        public static 
        unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteVertexArrays((Int32)n, (UInt32*)arrays);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
        public static 
        void DeleteVertexArrays(Int32 n, UInt32[] arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* arrays_ptr = arrays)
                {
                    Delegates.glDeleteVertexArrays((Int32)n, (UInt32*)arrays_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value used for depth buffer comparisons
        /// </summary>
        /// <param name="func">
        /// <para>
        /// Specifies the depth comparison function. Symbolic constants GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, and GL_ALWAYS are accepted. The initial value is GL_LESS.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glDepthFunc")]
        public static 
        void DepthFunc(DepthFunction func)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthFunc((DepthFunction)func);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable or disable writing into the depth buffer
        /// </summary>
        /// <param name="flag">
        /// <para>
        /// Specifies whether the depth buffer is enabled for writing. If flag is GL_FALSE, depth buffer writing is disabled. Otherwise, it is enabled. Initially, depth buffer writing is enabled.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glDepthMask")]
        public static 
        void DepthMask(bool flag)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthMask((bool)flag);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify mapping of depth values from normalized device coordinates to window coordinates
        /// </summary>
        /// <param name="nearVal">
        /// <para>
        /// Specifies the mapping of the near clipping plane to window coordinates. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="farVal">
        /// <para>
        /// Specifies the mapping of the far clipping plane to window coordinates. The initial value is 1.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glDepthRange")]
        public static 
        void DepthRange(Double near, Double far)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthRange((Double)near, (Double)far);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Detaches a shader object from a program object to which it is attached
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object from which to detach the shader object.
        /// </para>
        /// </param>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be detached.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDetachShader")]
        public static 
        void DetachShader(Int32 program, Int32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDetachShader((UInt32)program, (UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Detaches a shader object from a program object to which it is attached
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object from which to detach the shader object.
        /// </para>
        /// </param>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be detached.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDetachShader")]
        public static 
        void DetachShader(UInt32 program, UInt32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDetachShader((UInt32)program, (UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glDisable")]
        public static 
        void Disable(EnableCap cap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisable((EnableCap)cap);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glDisableClientState")]
        public static 
        void DisableClientState(EnableCap array)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisableClientState((EnableCap)array);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glDisablei")]
        public static 
        void Disable(IndexedEnableCap target, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisablei((IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glDisablei")]
        public static 
        void Disable(IndexedEnableCap target, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisablei((IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDisableVertexAttribArray")]
        public static 
        void DisableVertexAttribArray(Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisableVertexAttribArray((UInt32)index);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDisableVertexAttribArray")]
        public static 
        void DisableVertexAttribArray(UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisableVertexAttribArray((UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="first">
        /// <para>
        /// Specifies the starting index in the enabled arrays.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of indices to be rendered.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDrawArrays")]
        public static 
        void DrawArrays(BeginMode mode, Int32 first, Int32 count)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawArrays((BeginMode)mode, (Int32)first, (Int32)count);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glDrawArraysInstanced")]
        public static 
        void DrawArraysInstanced(BeginMode mode, Int32 first, Int32 count, Int32 primcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawArraysInstanced((BeginMode)mode, (Int32)first, (Int32)count, (Int32)primcount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify which color buffers are to be drawn into
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies up to four color buffers to be drawn into. Symbolic constants GL_NONE, GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, GL_FRONT_AND_BACK, and GL_AUXi, where i is between 0 and the value of GL_AUX_BUFFERS minus 1, are accepted. (GL_AUX_BUFFERS is not the upper limit; use glGet to query the number of available aux buffers.) The initial value is GL_FRONT for single-buffered contexts, and GL_BACK for double-buffered contexts.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glDrawBuffer")]
        public static 
        void DrawBuffer(DrawBufferMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawBuffer((DrawBufferMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDrawBuffers")]
        public static 
        unsafe void DrawBuffers(Int32 n, DrawBuffersEnum* bufs)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawBuffers((Int32)n, (DrawBuffersEnum*)bufs);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDrawBuffers")]
        public static 
        void DrawBuffers(Int32 n, DrawBuffersEnum[] bufs)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (DrawBuffersEnum* bufs_ptr = bufs)
                {
                    Delegates.glDrawBuffers((Int32)n, (DrawBuffersEnum*)bufs_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies a list of color buffers to be drawn into
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffers in bufs.
        /// </para>
        /// </param>
        /// <param name="bufs">
        /// <para>
        /// Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glDrawBuffers")]
        public static 
        void DrawBuffers(Int32 n, ref DrawBuffersEnum bufs)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (DrawBuffersEnum* bufs_ptr = &bufs)
                {
                    Delegates.glDrawBuffers((Int32)n, (DrawBuffersEnum*)bufs_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] ref T3 indices)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElements((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[,,] indices)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElements((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[,] indices)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElements((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[] indices)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElements((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements(BeginMode mode, Int32 count, DrawElementsType type, IntPtr indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElements((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, IntPtr indices, Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices, (Int32)basevertex);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstanced((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstanced((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstanced((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstanced((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced(BeginMode mode, Int32 count, DrawElementsType type, IntPtr indices, Int32 primcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsInstanced((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex(ArbDrawElementsBaseVertex mode, Int32 count, DrawElementsType type, IntPtr indices, Int32 primcount, Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsInstancedBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32)basevertex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Write a block of pixels to the frame buffer
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle to be written into the frame buffer.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. Symbolic constants GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type for data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels<T4>(Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T4 pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawPixels((Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Write a block of pixels to the frame buffer
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle to be written into the frame buffer.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. Symbolic constants GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type for data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels<T4>(Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T4[,,] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawPixels((Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Write a block of pixels to the frame buffer
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle to be written into the frame buffer.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. Symbolic constants GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type for data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels<T4>(Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T4[,] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawPixels((Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Write a block of pixels to the frame buffer
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle to be written into the frame buffer.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. Symbolic constants GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type for data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels<T4>(Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T4[] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawPixels((Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Write a block of pixels to the frame buffer
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle to be written into the frame buffer.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. Symbolic constants GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type for data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels(Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawPixels((Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] ref T5 indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[,,] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[,] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, IntPtr indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] ref T5 indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[,,] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[,] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, IntPtr indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawRangeElements((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(ArbDrawElementsBaseVertex mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] ref T5 indices, Int32 basevertex)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(ArbDrawElementsBaseVertex mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[,,] indices, Int32 basevertex)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(ArbDrawElementsBaseVertex mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[,] indices, Int32 basevertex)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(ArbDrawElementsBaseVertex mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[] indices, Int32 basevertex)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex(ArbDrawElementsBaseVertex mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, IntPtr indices, Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices, (Int32)basevertex);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(ArbDrawElementsBaseVertex mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] ref T5 indices, Int32 basevertex)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(ArbDrawElementsBaseVertex mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[,,] indices, Int32 basevertex)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(ArbDrawElementsBaseVertex mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[,] indices, Int32 basevertex)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(ArbDrawElementsBaseVertex mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[] indices, Int32 basevertex)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex(ArbDrawElementsBaseVertex mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, IntPtr indices, Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawRangeElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices, (Int32)basevertex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Flag edges as either boundary or nonboundary
        /// </summary>
        /// <param name="flag">
        /// <para>
        /// Specifies the current edge flag value, either GL_TRUE or GL_FALSE. The initial value is GL_TRUE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEdgeFlag")]
        public static 
        void EdgeFlag(bool flag)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEdgeFlag((bool)flag);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of edge flags
        /// </summary>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer<T1>(Int32 stride, [In, Out] ref T1 pointer)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glEdgeFlagPointer((Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of edge flags
        /// </summary>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer<T1>(Int32 stride, [In, Out] T1[,,] pointer)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glEdgeFlagPointer((Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of edge flags
        /// </summary>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer<T1>(Int32 stride, [In, Out] T1[,] pointer)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glEdgeFlagPointer((Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of edge flags
        /// </summary>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer<T1>(Int32 stride, [In, Out] T1[] pointer)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glEdgeFlagPointer((Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of edge flags
        /// </summary>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer(Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEdgeFlagPointer((Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Flag edges as either boundary or nonboundary
        /// </summary>
        /// <param name="flag">
        /// <para>
        /// Specifies the current edge flag value, either GL_TRUE or GL_FALSE. The initial value is GL_TRUE.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEdgeFlagv")]
        public static 
        unsafe void EdgeFlag(bool* flag)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEdgeFlagv((bool*)flag);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable or disable server-side GL capabilities
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glEnable")]
        public static 
        void Enable(EnableCap cap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnable((EnableCap)cap);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable or disable client-side capability
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies the capability to enable. Symbolic constants GL_COLOR_ARRAY, GL_EDGE_FLAG_ARRAY, GL_FOG_COORD_ARRAY, GL_INDEX_ARRAY, GL_NORMAL_ARRAY, GL_SECONDARY_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY, and GL_VERTEX_ARRAY are accepted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glEnableClientState")]
        public static 
        void EnableClientState(EnableCap array)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnableClientState((EnableCap)array);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable or disable server-side GL capabilities
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glEnablei")]
        public static 
        void Enable(IndexedEnableCap target, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnablei((IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable or disable server-side GL capabilities
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glEnablei")]
        public static 
        void Enable(IndexedEnableCap target, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnablei((IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable or disable a generic vertex attribute array
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be enabled or disabled.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glEnableVertexAttribArray")]
        public static 
        void EnableVertexAttribArray(Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnableVertexAttribArray((UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Enable or disable a generic vertex attribute array
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be enabled or disabled.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glEnableVertexAttribArray")]
        public static 
        void EnableVertexAttribArray(UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnableVertexAttribArray((UInt32)index);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEnd")]
        public static 
        void End()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnd();
            #if DEBUG
            GraphicsContext.CurrentContext.ErrorChecking = true;
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glEndConditionalRender")]
        public static 
        void EndConditionalRender()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndConditionalRender();
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEndList")]
        public static 
        void EndList()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndList();
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glEndQuery")]
        public static 
        void EndQuery(QueryTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndQuery((QueryTarget)target);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glEndTransformFeedback")]
        public static 
        void EndTransformFeedback()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndTransformFeedback();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord1d")]
        public static 
        void EvalCoord1(Double u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalCoord1d((Double)u);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord1dv")]
        public static 
        unsafe void EvalCoord1(Double* u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalCoord1dv((Double*)u);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord1f")]
        public static 
        void EvalCoord1(Single u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalCoord1f((Single)u);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord1fv")]
        public static 
        unsafe void EvalCoord1(Single* u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalCoord1fv((Single*)u);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord2d")]
        public static 
        void EvalCoord2(Double u, Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalCoord2d((Double)u, (Double)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord2dv")]
        public static 
        unsafe void EvalCoord2(Double* u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalCoord2dv((Double*)u);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord2dv")]
        public static 
        void EvalCoord2(Double[] u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* u_ptr = u)
                {
                    Delegates.glEvalCoord2dv((Double*)u_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord2dv")]
        public static 
        void EvalCoord2(ref Double u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* u_ptr = &u)
                {
                    Delegates.glEvalCoord2dv((Double*)u_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord2f")]
        public static 
        void EvalCoord2(Single u, Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalCoord2f((Single)u, (Single)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord2fv")]
        public static 
        void EvalCoord2(ref Single u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* u_ptr = &u)
                {
                    Delegates.glEvalCoord2fv((Single*)u_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord2fv")]
        public static 
        unsafe void EvalCoord2(Single* u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalCoord2fv((Single*)u);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Evaluate enabled one- and two-dimensional maps
        /// </summary>
        /// <param name="u">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap1 or glMap2 command.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies a value that is the domain coordinate to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalCoord2fv")]
        public static 
        void EvalCoord2(Single[] u)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* u_ptr = u)
                {
                    Delegates.glEvalCoord2fv((Single*)u_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Compute a one- or two-dimensional grid of points or lines
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// In glEvalMesh1, specifies whether to compute a one-dimensional mesh of points or lines. Symbolic constants GL_POINT and GL_LINE are accepted.
        /// </para>
        /// </param>
        /// <param name="i1">
        /// <para>
        /// Specify the first and last integer values for grid domain variable .
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalMesh1")]
        public static 
        void EvalMesh1(MeshMode1 mode, Int32 i1, Int32 i2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalMesh1((MeshMode1)mode, (Int32)i1, (Int32)i2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Compute a one- or two-dimensional grid of points or lines
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// In glEvalMesh1, specifies whether to compute a one-dimensional mesh of points or lines. Symbolic constants GL_POINT and GL_LINE are accepted.
        /// </para>
        /// </param>
        /// <param name="i1">
        /// <para>
        /// Specify the first and last integer values for grid domain variable .
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalMesh2")]
        public static 
        void EvalMesh2(MeshMode2 mode, Int32 i1, Int32 i2, Int32 j1, Int32 j2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalMesh2((MeshMode2)mode, (Int32)i1, (Int32)i2, (Int32)j1, (Int32)j2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate and evaluate a single point in a mesh
        /// </summary>
        /// <param name="i">
        /// <para>
        /// Specifies the integer value for grid domain variable .
        /// </para>
        /// </param>
        /// <param name="j">
        /// <para>
        /// Specifies the integer value for grid domain variable (glEvalPoint2 only).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalPoint1")]
        public static 
        void EvalPoint1(Int32 i)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalPoint1((Int32)i);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate and evaluate a single point in a mesh
        /// </summary>
        /// <param name="i">
        /// <para>
        /// Specifies the integer value for grid domain variable .
        /// </para>
        /// </param>
        /// <param name="j">
        /// <para>
        /// Specifies the integer value for grid domain variable (glEvalPoint2 only).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glEvalPoint2")]
        public static 
        void EvalPoint2(Int32 i, Int32 j)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalPoint2((Int32)i, (Int32)j);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Controls feedback mode
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the maximum number of values that can be written into buffer.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies a symbolic constant that describes the information that will be returned for each vertex. GL_2D, GL_3D, GL_3D_COLOR, GL_3D_COLOR_TEXTURE, and GL_4D_COLOR_TEXTURE are accepted.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the feedback data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
        public static 
        void FeedbackBuffer(Int32 size, FeedbackType type, [Out] out Single buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* buffer_ptr = &buffer)
                {
                    Delegates.glFeedbackBuffer((Int32)size, (FeedbackType)type, (Single*)buffer_ptr);
                    buffer = *buffer_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Controls feedback mode
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the maximum number of values that can be written into buffer.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies a symbolic constant that describes the information that will be returned for each vertex. GL_2D, GL_3D, GL_3D_COLOR, GL_3D_COLOR_TEXTURE, and GL_4D_COLOR_TEXTURE are accepted.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the feedback data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
        public static 
        unsafe void FeedbackBuffer(Int32 size, FeedbackType type, [Out] Single* buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFeedbackBuffer((Int32)size, (FeedbackType)type, (Single*)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Controls feedback mode
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the maximum number of values that can be written into buffer.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies a symbolic constant that describes the information that will be returned for each vertex. GL_2D, GL_3D, GL_3D_COLOR, GL_3D_COLOR_TEXTURE, and GL_4D_COLOR_TEXTURE are accepted.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the feedback data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
        public static 
        void FeedbackBuffer(Int32 size, FeedbackType type, [Out] Single[] buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* buffer_ptr = buffer)
                {
                    Delegates.glFeedbackBuffer((Int32)size, (FeedbackType)type, (Single*)buffer_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glFenceSync")]
        public static 
        IntPtr FenceSync(ArbSync condition, Int32 flags)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glFenceSync((ArbSync)condition, (UInt32)flags);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glFenceSync")]
        public static 
        IntPtr FenceSync(ArbSync condition, UInt32 flags)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glFenceSync((ArbSync)condition, (UInt32)flags);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Block until all GL execution is complete
        /// </summary>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glFinish")]
        public static 
        void Finish()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFinish();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Force execution of GL commands in finite time
        /// </summary>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glFlush")]
        public static 
        void Flush()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFlush();
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbMapBufferRange", Version = "3.0", EntryPoint = "glFlushMappedBufferRange")]
        public static 
        void FlushMappedBufferRange(BufferTarget target, IntPtr offset, IntPtr length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFlushMappedBufferRange((BufferTarget)target, (IntPtr)offset, (IntPtr)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoordd")]
        public static 
        void FogCoord(Double coord)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogCoordd((Double)coord);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoorddv")]
        public static 
        unsafe void FogCoord(Double* coord)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogCoorddv((Double*)coord);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoordf")]
        public static 
        void FogCoord(Single coord)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogCoordf((Single)coord);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoordfv")]
        public static 
        unsafe void FogCoord(Single* coord)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogCoordfv((Single*)coord);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer<T2>(FogPointerType type, Int32 stride, [In, Out] ref T2 pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glFogCoordPointer((FogPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer<T2>(FogPointerType type, Int32 stride, [In, Out] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glFogCoordPointer((FogPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer<T2>(FogPointerType type, Int32 stride, [In, Out] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glFogCoordPointer((FogPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer<T2>(FogPointerType type, Int32 stride, [In, Out] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glFogCoordPointer((FogPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer(FogPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogCoordPointer((FogPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify fog parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued fog parameter. GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX, and GL_FOG_COORD_SRC are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFogf")]
        public static 
        void Fog(FogParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogf((FogParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify fog parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued fog parameter. GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX, and GL_FOG_COORD_SRC are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFogfv")]
        public static 
        unsafe void Fog(FogParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogfv((FogParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify fog parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued fog parameter. GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX, and GL_FOG_COORD_SRC are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFogfv")]
        public static 
        void Fog(FogParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glFogfv((FogParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify fog parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued fog parameter. GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX, and GL_FOG_COORD_SRC are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFogi")]
        public static 
        void Fog(FogParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogi((FogParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify fog parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued fog parameter. GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX, and GL_FOG_COORD_SRC are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFogiv")]
        public static 
        unsafe void Fog(FogParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogiv((FogParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify fog parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued fog parameter. GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX, and GL_FOG_COORD_SRC are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFogiv")]
        public static 
        void Fog(FogParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glFogiv((FogParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferRenderbuffer")]
        public static 
        void FramebufferRenderbuffer(FramebufferTarget target, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, Int32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferRenderbuffer((FramebufferTarget)target, (FramebufferAttachment)attachment, (RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferRenderbuffer")]
        public static 
        void FramebufferRenderbuffer(FramebufferTarget target, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, UInt32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferRenderbuffer((FramebufferTarget)target, (FramebufferAttachment)attachment, (RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version32", Version = "1.2", EntryPoint = "glFramebufferTexture")]
        public static 
        void FramebufferTexture(Version32 target, Version32 attachment, Int32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture((Version32)target, (Version32)attachment, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version32", Version = "1.2", EntryPoint = "glFramebufferTexture")]
        public static 
        void FramebufferTexture(Version32 target, Version32 attachment, UInt32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture((Version32)target, (Version32)attachment, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferTexture1D")]
        public static 
        void FramebufferTexture1D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture1D((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferTexture1D")]
        public static 
        void FramebufferTexture1D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture1D((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferTexture2D")]
        public static 
        void FramebufferTexture2D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture2D((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferTexture2D")]
        public static 
        void FramebufferTexture2D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture2D((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferTexture3D")]
        public static 
        void FramebufferTexture3D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level, Int32 zoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture3D((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferTexture3D")]
        public static 
        void FramebufferTexture3D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level, Int32 zoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture3D((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version32", Version = "1.2", EntryPoint = "glFramebufferTextureFace")]
        public static 
        void FramebufferTextureFace(Version32 target, Version32 attachment, Int32 texture, Int32 level, Version32 face)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTextureFace((Version32)target, (Version32)attachment, (UInt32)texture, (Int32)level, (Version32)face);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version32", Version = "1.2", EntryPoint = "glFramebufferTextureFace")]
        public static 
        void FramebufferTextureFace(Version32 target, Version32 attachment, UInt32 texture, Int32 level, Version32 face)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTextureFace((Version32)target, (Version32)attachment, (UInt32)texture, (Int32)level, (Version32)face);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferTextureLayer")]
        public static 
        void FramebufferTextureLayer(FramebufferTarget target, FramebufferAttachment attachment, Int32 texture, Int32 level, Int32 layer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTextureLayer((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glFramebufferTextureLayer")]
        public static 
        void FramebufferTextureLayer(FramebufferTarget target, FramebufferAttachment attachment, UInt32 texture, Int32 level, Int32 layer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTextureLayer((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define front- and back-facing polygons
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies the orientation of front-facing polygons. GL_CW and GL_CCW are accepted. The initial value is GL_CCW.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glFrontFace")]
        public static 
        void FrontFace(FrontFaceDirection mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFrontFace((FrontFaceDirection)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix by a perspective matrix
        /// </summary>
        /// <param name="left">
        /// <para>
        /// Specify the coordinates for the left and right vertical clipping planes.
        /// </para>
        /// </param>
        /// <param name="bottom">
        /// <para>
        /// Specify the coordinates for the bottom and top horizontal clipping planes.
        /// </para>
        /// </param>
        /// <param name="nearVal">
        /// <para>
        /// Specify the distances to the near and far depth clipping planes. Both distances must be positive.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glFrustum")]
        public static 
        void Frustum(Double left, Double right, Double bottom, Double top, Double zNear, Double zFar)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFrustum((Double)left, (Double)right, (Double)bottom, (Double)top, (Double)zNear, (Double)zFar);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        unsafe void GenBuffers(Int32 n, [Out] Int32* buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenBuffers((Int32)n, (UInt32*)buffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        void GenBuffers(Int32 n, [Out] Int32[] buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* buffers_ptr = buffers)
                {
                    Delegates.glGenBuffers((Int32)n, (UInt32*)buffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        void GenBuffers(Int32 n, [Out] out Int32 buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* buffers_ptr = &buffers)
                {
                    Delegates.glGenBuffers((Int32)n, (UInt32*)buffers_ptr);
                    buffers = *buffers_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        void GenBuffers(Int32 n, [Out] out UInt32 buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* buffers_ptr = &buffers)
                {
                    Delegates.glGenBuffers((Int32)n, (UInt32*)buffers_ptr);
                    buffers = *buffers_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        unsafe void GenBuffers(Int32 n, [Out] UInt32* buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenBuffers((Int32)n, (UInt32*)buffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate buffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of buffer object names to be generated.
        /// </para>
        /// </param>
        /// <param name="buffers">
        /// <para>
        /// Specifies an array in which the generated buffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        void GenBuffers(Int32 n, [Out] UInt32[] buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* buffers_ptr = buffers)
                {
                    Delegates.glGenBuffers((Int32)n, (UInt32*)buffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenerateMipmap")]
        public static 
        void GenerateMipmap(GenerateMipmapTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenerateMipmap((GenerateMipmapTarget)target);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        unsafe void GenFramebuffers(Int32 n, [Out] Int32* framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        void GenFramebuffers(Int32 n, [Out] Int32[] framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* framebuffers_ptr = framebuffers)
                {
                    Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        void GenFramebuffers(Int32 n, [Out] out Int32 framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* framebuffers_ptr = &framebuffers)
                {
                    Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                    framebuffers = *framebuffers_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        void GenFramebuffers(Int32 n, [Out] out UInt32 framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* framebuffers_ptr = &framebuffers)
                {
                    Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                    framebuffers = *framebuffers_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        unsafe void GenFramebuffers(Int32 n, [Out] UInt32* framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        void GenFramebuffers(Int32 n, [Out] UInt32[] framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* framebuffers_ptr = framebuffers)
                {
                    Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate a contiguous set of empty display lists
        /// </summary>
        /// <param name="range">
        /// <para>
        /// Specifies the number of contiguous empty display lists to be generated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGenLists")]
        public static 
        Int32 GenLists(Int32 range)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGenLists((Int32)range);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        unsafe void GenQueries(Int32 n, [Out] Int32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenQueries((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        void GenQueries(Int32 n, [Out] Int32[] ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = ids)
                {
                    Delegates.glGenQueries((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        void GenQueries(Int32 n, [Out] out Int32 ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = &ids)
                {
                    Delegates.glGenQueries((Int32)n, (UInt32*)ids_ptr);
                    ids = *ids_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        void GenQueries(Int32 n, [Out] out UInt32 ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = &ids)
                {
                    Delegates.glGenQueries((Int32)n, (UInt32*)ids_ptr);
                    ids = *ids_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        unsafe void GenQueries(Int32 n, [Out] UInt32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenQueries((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate query object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of query object names to be generated.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated query object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        void GenQueries(Int32 n, [Out] UInt32[] ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = ids)
                {
                    Delegates.glGenQueries((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        unsafe void GenRenderbuffers(Int32 n, [Out] Int32* renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenRenderbuffers((Int32)n, (UInt32*)renderbuffers);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        void GenRenderbuffers(Int32 n, [Out] Int32[] renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* renderbuffers_ptr = renderbuffers)
                {
                    Delegates.glGenRenderbuffers((Int32)n, (UInt32*)renderbuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        void GenRenderbuffers(Int32 n, [Out] out Int32 renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* renderbuffers_ptr = &renderbuffers)
                {
                    Delegates.glGenRenderbuffers((Int32)n, (UInt32*)renderbuffers_ptr);
                    renderbuffers = *renderbuffers_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        void GenRenderbuffers(Int32 n, [Out] out UInt32 renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* renderbuffers_ptr = &renderbuffers)
                {
                    Delegates.glGenRenderbuffers((Int32)n, (UInt32*)renderbuffers_ptr);
                    renderbuffers = *renderbuffers_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        unsafe void GenRenderbuffers(Int32 n, [Out] UInt32* renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenRenderbuffers((Int32)n, (UInt32*)renderbuffers);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        void GenRenderbuffers(Int32 n, [Out] UInt32[] renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* renderbuffers_ptr = renderbuffers)
                {
                    Delegates.glGenRenderbuffers((Int32)n, (UInt32*)renderbuffers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        unsafe void GenTextures(Int32 n, [Out] Int32* textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenTextures((Int32)n, (UInt32*)textures);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        void GenTextures(Int32 n, [Out] Int32[] textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* textures_ptr = textures)
                {
                    Delegates.glGenTextures((Int32)n, (UInt32*)textures_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        void GenTextures(Int32 n, [Out] out Int32 textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* textures_ptr = &textures)
                {
                    Delegates.glGenTextures((Int32)n, (UInt32*)textures_ptr);
                    textures = *textures_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        void GenTextures(Int32 n, [Out] out UInt32 textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* textures_ptr = &textures)
                {
                    Delegates.glGenTextures((Int32)n, (UInt32*)textures_ptr);
                    textures = *textures_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        unsafe void GenTextures(Int32 n, [Out] UInt32* textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenTextures((Int32)n, (UInt32*)textures);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        void GenTextures(Int32 n, [Out] UInt32[] textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* textures_ptr = textures)
                {
                    Delegates.glGenTextures((Int32)n, (UInt32*)textures_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        unsafe void GenVertexArrays(Int32 n, [Out] Int32* arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenVertexArrays((Int32)n, (UInt32*)arrays);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        void GenVertexArrays(Int32 n, [Out] Int32[] arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* arrays_ptr = arrays)
                {
                    Delegates.glGenVertexArrays((Int32)n, (UInt32*)arrays_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        void GenVertexArrays(Int32 n, [Out] out Int32 arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* arrays_ptr = &arrays)
                {
                    Delegates.glGenVertexArrays((Int32)n, (UInt32*)arrays_ptr);
                    arrays = *arrays_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        void GenVertexArrays(Int32 n, [Out] out UInt32 arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* arrays_ptr = &arrays)
                {
                    Delegates.glGenVertexArrays((Int32)n, (UInt32*)arrays_ptr);
                    arrays = *arrays_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        unsafe void GenVertexArrays(Int32 n, [Out] UInt32* arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenVertexArrays((Int32)n, (UInt32*)arrays);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        void GenVertexArrays(Int32 n, [Out] UInt32[] arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* arrays_ptr = arrays)
                {
                    Delegates.glGenVertexArrays((Int32)n, (UInt32*)arrays_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns information about an active attribute variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the attribute variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the attribute variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
        public static 
        unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] ActiveAttribType* type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveAttrib((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (ActiveAttribType*)type, (System.Text.StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns information about an active attribute variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the attribute variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the attribute variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
        public static 
        void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out ActiveAttribType type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (ActiveAttribType* type_ptr = &type)
                {
                    Delegates.glGetActiveAttrib((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (ActiveAttribType*)type_ptr, (System.Text.StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns information about an active attribute variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the attribute variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the attribute variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
        public static 
        unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] ActiveAttribType* type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveAttrib((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (ActiveAttribType*)type, (System.Text.StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns information about an active attribute variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the attribute variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the attribute variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the attribute variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
        public static 
        void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out ActiveAttribType type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (ActiveAttribType* type_ptr = &type)
                {
                    Delegates.glGetActiveAttrib((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (ActiveAttribType*)type_ptr, (System.Text.StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns information about an active uniform variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetActiveUniform")]
        public static 
        unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] ActiveUniformType* type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniform((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (ActiveUniformType*)type, (System.Text.StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns information about an active uniform variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetActiveUniform")]
        public static 
        void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out ActiveUniformType type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (ActiveUniformType* type_ptr = &type)
                {
                    Delegates.glGetActiveUniform((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (ActiveUniformType*)type_ptr, (System.Text.StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns information about an active uniform variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetActiveUniform")]
        public static 
        unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] ActiveUniformType* type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniform((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (ActiveUniformType*)type, (System.Text.StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns information about an active uniform variable for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Returns the size of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Returns the data type of the uniform variable.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Returns a null terminated string containing the name of the uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetActiveUniform")]
        public static 
        void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out ActiveUniformType type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (ActiveUniformType* type_ptr = &type)
                {
                    Delegates.glGetActiveUniform((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (ActiveUniformType*)type_ptr, (System.Text.StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, ArbUniformBufferObject pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (ArbUniformBufferObject)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, ArbUniformBufferObject pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (ArbUniformBufferObject)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, ArbUniformBufferObject pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (ArbUniformBufferObject)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, ArbUniformBufferObject pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (ArbUniformBufferObject)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, ArbUniformBufferObject pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (ArbUniformBufferObject)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, ArbUniformBufferObject pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (ArbUniformBufferObject)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")]
        public static 
        unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformBlockName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)uniformBlockName);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")]
        public static 
        void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder uniformBlockName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformBlockName);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")]
        public static 
        unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformBlockName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)uniformBlockName);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")]
        public static 
        void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder uniformBlockName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformBlockName);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")]
        public static 
        unsafe void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)uniformName);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")]
        public static 
        void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder uniformName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformName);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")]
        public static 
        unsafe void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder uniformName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)uniformName);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformName")]
        public static 
        void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder uniformName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)uniformName);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, ArbUniformBufferObject pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices, (ArbUniformBufferObject)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, ArbUniformBufferObject pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* uniformIndices_ptr = uniformIndices)
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices_ptr, (ArbUniformBufferObject)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, ArbUniformBufferObject pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* uniformIndices_ptr = &uniformIndices)
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices_ptr, (ArbUniformBufferObject)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, ArbUniformBufferObject pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* uniformIndices_ptr = &uniformIndices)
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices_ptr, (ArbUniformBufferObject)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, ArbUniformBufferObject pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices, (ArbUniformBufferObject)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, ArbUniformBufferObject pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* uniformIndices_ptr = uniformIndices)
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices_ptr, (ArbUniformBufferObject)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the handles of the shader objects attached to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="maxCount">
        /// <para>
        /// Specifies the size of the array for storing the returned object names.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Returns the number of names actually returned in objects.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies an array that is used to return the names of attached shader objects.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [Out] Int32* count, [Out] Int32* obj)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetAttachedShaders((UInt32)program, (Int32)maxCount, (Int32*)count, (UInt32*)obj);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the handles of the shader objects attached to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="maxCount">
        /// <para>
        /// Specifies the size of the array for storing the returned object names.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Returns the number of names actually returned in objects.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies an array that is used to return the names of attached shader objects.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [Out] Int32* count, [Out] Int32[] obj)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            fixed (Int32* obj_ptr = obj)
            {
                Delegates.glGetAttachedShaders((UInt32)program, (Int32)maxCount, (Int32*)count, (UInt32*)obj_ptr);
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the handles of the shader objects attached to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="maxCount">
        /// <para>
        /// Specifies the size of the array for storing the returned object names.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Returns the number of names actually returned in objects.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies an array that is used to return the names of attached shader objects.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        void GetAttachedShaders(Int32 program, Int32 maxCount, [Out] out Int32 count, [Out] out Int32 obj)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                fixed (Int32* obj_ptr = &obj)
                {
                    Delegates.glGetAttachedShaders((UInt32)program, (Int32)maxCount, (Int32*)count_ptr, (UInt32*)obj_ptr);
                    count = *count_ptr;
                    obj = *obj_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the handles of the shader objects attached to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="maxCount">
        /// <para>
        /// Specifies the size of the array for storing the returned object names.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Returns the number of names actually returned in objects.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies an array that is used to return the names of attached shader objects.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [Out] Int32* count, [Out] UInt32* obj)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetAttachedShaders((UInt32)program, (Int32)maxCount, (Int32*)count, (UInt32*)obj);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the handles of the shader objects attached to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="maxCount">
        /// <para>
        /// Specifies the size of the array for storing the returned object names.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Returns the number of names actually returned in objects.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies an array that is used to return the names of attached shader objects.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [Out] Int32* count, [Out] UInt32[] obj)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            fixed (UInt32* obj_ptr = obj)
            {
                Delegates.glGetAttachedShaders((UInt32)program, (Int32)maxCount, (Int32*)count, (UInt32*)obj_ptr);
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the handles of the shader objects attached to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="maxCount">
        /// <para>
        /// Specifies the size of the array for storing the returned object names.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Returns the number of names actually returned in objects.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies an array that is used to return the names of attached shader objects.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        void GetAttachedShaders(UInt32 program, Int32 maxCount, [Out] out Int32 count, [Out] out UInt32 obj)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                fixed (UInt32* obj_ptr = &obj)
                {
                    Delegates.glGetAttachedShaders((UInt32)program, (Int32)maxCount, (Int32*)count_ptr, (UInt32*)obj_ptr);
                    count = *count_ptr;
                    obj = *obj_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the location of an attribute variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Points to a null terminated string containing the name of the attribute variable whose location is to be queried.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetAttribLocation")]
        public static 
        Int32 GetAttribLocation(Int32 program, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetAttribLocation((UInt32)program, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the location of an attribute variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Points to a null terminated string containing the name of the attribute variable whose location is to be queried.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetAttribLocation")]
        public static 
        Int32 GetAttribLocation(UInt32 program, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetAttribLocation((UInt32)program, (String)name);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        unsafe void GetBoolean(GetIndexedPName target, Int32 index, [Out] bool* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBooleani_v((GetIndexedPName)target, (UInt32)index, (bool*)data);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        void GetBoolean(GetIndexedPName target, Int32 index, [Out] bool[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* data_ptr = data)
                {
                    Delegates.glGetBooleani_v((GetIndexedPName)target, (UInt32)index, (bool*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        void GetBoolean(GetIndexedPName target, Int32 index, [Out] out bool data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* data_ptr = &data)
                {
                    Delegates.glGetBooleani_v((GetIndexedPName)target, (UInt32)index, (bool*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        unsafe void GetBoolean(GetIndexedPName target, UInt32 index, [Out] bool* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBooleani_v((GetIndexedPName)target, (UInt32)index, (bool*)data);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        void GetBoolean(GetIndexedPName target, UInt32 index, [Out] bool[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* data_ptr = data)
                {
                    Delegates.glGetBooleani_v((GetIndexedPName)target, (UInt32)index, (bool*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        void GetBoolean(GetIndexedPName target, UInt32 index, [Out] out bool data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* data_ptr = &data)
                {
                    Delegates.glGetBooleani_v((GetIndexedPName)target, (UInt32)index, (bool*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetBooleanv")]
        public static 
        unsafe void GetBoolean(GetPName pname, [Out] bool* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBooleanv((GetPName)pname, (bool*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetBooleanv")]
        public static 
        void GetBoolean(GetPName pname, [Out] bool[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* @params_ptr = @params)
                {
                    Delegates.glGetBooleanv((GetPName)pname, (bool*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetBooleanv")]
        public static 
        void GetBoolean(GetPName pname, [Out] out bool @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* @params_ptr = &@params)
                {
                    Delegates.glGetBooleanv((GetPName)pname, (bool*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
        public static 
        unsafe void GetBufferParameteri64(Version32 target, Version32 pname, [Out] Int64* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBufferParameteri64v((Version32)target, (Version32)pname, (Int64*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
        public static 
        void GetBufferParameteri64(Version32 target, Version32 pname, [Out] Int64[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = @params)
                {
                    Delegates.glGetBufferParameteri64v((Version32)target, (Version32)pname, (Int64*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
        public static 
        void GetBufferParameteri64(Version32 target, Version32 pname, [Out] out Int64 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = &@params)
                {
                    Delegates.glGetBufferParameteri64v((Version32)target, (Version32)pname, (Int64*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a buffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the symbolic name of a buffer object parameter. Accepted values are GL_BUFFER_ACCESS, GL_BUFFER_MAPPED, GL_BUFFER_SIZE, or GL_BUFFER_USAGE.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the requested parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
        public static 
        unsafe void GetBufferParameter(BufferTarget target, BufferParameterName pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBufferParameteriv((BufferTarget)target, (BufferParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a buffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the symbolic name of a buffer object parameter. Accepted values are GL_BUFFER_ACCESS, GL_BUFFER_MAPPED, GL_BUFFER_SIZE, or GL_BUFFER_USAGE.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the requested parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
        public static 
        void GetBufferParameter(BufferTarget target, BufferParameterName pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetBufferParameteriv((BufferTarget)target, (BufferParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a buffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the symbolic name of a buffer object parameter. Accepted values are GL_BUFFER_ACCESS, GL_BUFFER_MAPPED, GL_BUFFER_SIZE, or GL_BUFFER_USAGE.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the requested parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
        public static 
        void GetBufferParameter(BufferTarget target, BufferParameterName pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetBufferParameteriv((BufferTarget)target, (BufferParameterName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the pointer to a mapped buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the pointer to be returned. The symbolic constant must be GL_BUFFER_MAP_POINTER.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer<T2>(BufferTarget target, BufferPointer pname, [In, Out] ref T2 @params)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferPointerv((BufferTarget)target, (BufferPointer)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the pointer to a mapped buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the pointer to be returned. The symbolic constant must be GL_BUFFER_MAP_POINTER.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer<T2>(BufferTarget target, BufferPointer pname, [In, Out] T2[,,] @params)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferPointerv((BufferTarget)target, (BufferPointer)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the pointer to a mapped buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the pointer to be returned. The symbolic constant must be GL_BUFFER_MAP_POINTER.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer<T2>(BufferTarget target, BufferPointer pname, [In, Out] T2[,] @params)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferPointerv((BufferTarget)target, (BufferPointer)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the pointer to a mapped buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the pointer to be returned. The symbolic constant must be GL_BUFFER_MAP_POINTER.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer<T2>(BufferTarget target, BufferPointer pname, [In, Out] T2[] @params)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferPointerv((BufferTarget)target, (BufferPointer)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the pointer to a mapped buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the pointer to be returned. The symbolic constant must be GL_BUFFER_MAP_POINTER.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer(BufferTarget target, BufferPointer pname, [Out] IntPtr @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBufferPointerv((BufferTarget)target, (BufferPointer)pname, (IntPtr)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData<T3>(BufferTarget target, IntPtr offset, IntPtr size, [In, Out] ref T3 data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData<T3>(BufferTarget target, IntPtr offset, IntPtr size, [In, Out] T3[,,] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData<T3>(BufferTarget target, IntPtr offset, IntPtr size, [In, Out] T3[,] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData<T3>(BufferTarget target, IntPtr offset, IntPtr size, [In, Out] T3[] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a subset of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size in bytes of the data store region being returned.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the location where buffer object data is returned.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData(BufferTarget target, IntPtr offset, IntPtr size, [Out] IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBufferSubData((BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the coefficients of the specified clipping plane
        /// </summary>
        /// <param name="plane">
        /// <para>
        /// Specifies a clipping plane. The number of clipping planes depends on the implementation, but at least six clipping planes are supported. They are identified by symbolic names of the form GL_CLIP_PLANE where i ranges from 0 to the value of GL_MAX_CLIP_PLANES - 1.
        /// </para>
        /// </param>
        /// <param name="equation">
        /// <para>
        /// Returns four double-precision values that are the coefficients of the plane equation of plane in eye coordinates. The initial value is (0, 0, 0, 0).
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetClipPlane")]
        public static 
        unsafe void GetClipPlane(ClipPlaneName plane, [Out] Double* equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetClipPlane((ClipPlaneName)plane, (Double*)equation);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the coefficients of the specified clipping plane
        /// </summary>
        /// <param name="plane">
        /// <para>
        /// Specifies a clipping plane. The number of clipping planes depends on the implementation, but at least six clipping planes are supported. They are identified by symbolic names of the form GL_CLIP_PLANE where i ranges from 0 to the value of GL_MAX_CLIP_PLANES - 1.
        /// </para>
        /// </param>
        /// <param name="equation">
        /// <para>
        /// Returns four double-precision values that are the coefficients of the plane equation of plane in eye coordinates. The initial value is (0, 0, 0, 0).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetClipPlane")]
        public static 
        void GetClipPlane(ClipPlaneName plane, [Out] Double[] equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* equation_ptr = equation)
                {
                    Delegates.glGetClipPlane((ClipPlaneName)plane, (Double*)equation_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the coefficients of the specified clipping plane
        /// </summary>
        /// <param name="plane">
        /// <para>
        /// Specifies a clipping plane. The number of clipping planes depends on the implementation, but at least six clipping planes are supported. They are identified by symbolic names of the form GL_CLIP_PLANE where i ranges from 0 to the value of GL_MAX_CLIP_PLANES - 1.
        /// </para>
        /// </param>
        /// <param name="equation">
        /// <para>
        /// Returns four double-precision values that are the coefficients of the plane equation of plane in eye coordinates. The initial value is (0, 0, 0, 0).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetClipPlane")]
        public static 
        void GetClipPlane(ClipPlaneName plane, [Out] out Double equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* equation_ptr = &equation)
                {
                    Delegates.glGetClipPlane((ClipPlaneName)plane, (Double*)equation_ptr);
                    equation = *equation_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable<T3>(ColorTableTarget target, PixelFormat format, PixelType type, [In, Out] ref T3 table)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glGetColorTable((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable<T3>(ColorTableTarget target, PixelFormat format, PixelType type, [In, Out] T3[,,] table)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glGetColorTable((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable<T3>(ColorTableTarget target, PixelFormat format, PixelType type, [In, Out] T3[,] table)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glGetColorTable((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable<T3>(ColorTableTarget target, PixelFormat format, PixelType type, [In, Out] T3[] table)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glGetColorTable((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable(ColorTableTarget target, PixelFormat format, PixelType type, [Out] IntPtr table)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetColorTable((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)table);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTableParameterfv")]
        public static 
        void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetColorTableParameterfv((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTableParameterfv")]
        public static 
        unsafe void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetColorTableParameterfv((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTableParameterfv")]
        public static 
        void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetColorTableParameterfv((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTableParameteriv")]
        public static 
        unsafe void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetColorTableParameteriv((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTableParameteriv")]
        public static 
        void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetColorTableParameteriv((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetColorTableParameteriv")]
        public static 
        void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetColorTableParameteriv((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage<T2>(TextureTarget target, Int32 level, [In, Out] ref T2 img)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
            try
            {
                Delegates.glGetCompressedTexImage((TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
            }
            finally
            {
                img_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage<T2>(TextureTarget target, Int32 level, [In, Out] T2[,,] img)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
            try
            {
                Delegates.glGetCompressedTexImage((TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
            }
            finally
            {
                img_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage<T2>(TextureTarget target, Int32 level, [In, Out] T2[,] img)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
            try
            {
                Delegates.glGetCompressedTexImage((TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
            }
            finally
            {
                img_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage<T2>(TextureTarget target, Int32 level, [In, Out] T2[] img)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
            try
            {
                Delegates.glGetCompressedTexImage((TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
            }
            finally
            {
                img_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a compressed texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3D GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="lod">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the compressed texture image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage(TextureTarget target, Int32 level, [Out] IntPtr img)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetCompressedTexImage((TextureTarget)target, (Int32)level, (IntPtr)img);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter<T3>(ConvolutionTarget target, PixelFormat format, PixelType type, [In, Out] ref T3 image)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glGetConvolutionFilter((ConvolutionTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter<T3>(ConvolutionTarget target, PixelFormat format, PixelType type, [In, Out] T3[,,] image)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glGetConvolutionFilter((ConvolutionTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter<T3>(ConvolutionTarget target, PixelFormat format, PixelType type, [In, Out] T3[,] image)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glGetConvolutionFilter((ConvolutionTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter<T3>(ConvolutionTarget target, PixelFormat format, PixelType type, [In, Out] T3[] image)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glGetConvolutionFilter((ConvolutionTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter(ConvolutionTarget target, PixelFormat format, PixelType type, [Out] IntPtr image)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetConvolutionFilter((ConvolutionTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)image);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionParameterfv")]
        public static 
        void GetConvolutionParameter(ConvolutionTarget target, Version12Deprecated pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetConvolutionParameterfv((ConvolutionTarget)target, (Version12Deprecated)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionParameterfv")]
        public static 
        unsafe void GetConvolutionParameter(ConvolutionTarget target, Version12Deprecated pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetConvolutionParameterfv((ConvolutionTarget)target, (Version12Deprecated)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionParameterfv")]
        public static 
        void GetConvolutionParameter(ConvolutionTarget target, Version12Deprecated pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetConvolutionParameterfv((ConvolutionTarget)target, (Version12Deprecated)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionParameteriv")]
        public static 
        unsafe void GetConvolutionParameter(ConvolutionTarget target, Version12Deprecated pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetConvolutionParameteriv((ConvolutionTarget)target, (Version12Deprecated)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionParameteriv")]
        public static 
        void GetConvolutionParameter(ConvolutionTarget target, Version12Deprecated pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetConvolutionParameteriv((ConvolutionTarget)target, (Version12Deprecated)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetConvolutionParameteriv")]
        public static 
        void GetConvolutionParameter(ConvolutionTarget target, Version12Deprecated pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetConvolutionParameteriv((ConvolutionTarget)target, (Version12Deprecated)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetDoublev")]
        public static 
        unsafe void GetDouble(GetPName pname, [Out] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetDoublev((GetPName)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetDoublev")]
        public static 
        void GetDouble(GetPName pname, [Out] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetDoublev((GetPName)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetDoublev")]
        public static 
        void GetDouble(GetPName pname, [Out] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetDoublev((GetPName)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return error information
        /// </summary>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetError")]
        public static 
        ErrorCode GetError()
        {
            return Delegates.glGetError();
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetFloatv")]
        public static 
        void GetFloat(GetPName pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetFloatv((GetPName)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetFloatv")]
        public static 
        unsafe void GetFloat(GetPName pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetFloatv((GetPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetFloatv")]
        public static 
        void GetFloat(GetPName pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetFloatv((GetPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
        public static 
        Int32 GetFragDataLocation(Int32 program, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetFragDataLocation((UInt32)program, (String)name);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
        public static 
        Int32 GetFragDataLocation(UInt32 program, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetFragDataLocation((UInt32)program, (String)name);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
        public static 
        unsafe void GetFramebufferAttachmentParameter(FramebufferTarget target, FramebufferAttachment attachment, FramebufferParameterName pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetFramebufferAttachmentParameteriv((FramebufferTarget)target, (FramebufferAttachment)attachment, (FramebufferParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
        public static 
        void GetFramebufferAttachmentParameter(FramebufferTarget target, FramebufferAttachment attachment, FramebufferParameterName pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetFramebufferAttachmentParameteriv((FramebufferTarget)target, (FramebufferAttachment)attachment, (FramebufferParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
        public static 
        void GetFramebufferAttachmentParameter(FramebufferTarget target, FramebufferAttachment attachment, FramebufferParameterName pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetFramebufferAttachmentParameteriv((FramebufferTarget)target, (FramebufferAttachment)attachment, (FramebufferParameterName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram<T4>(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [In, Out] ref T4 values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetHistogram((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram<T4>(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[,,] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetHistogram((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram<T4>(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[,] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetHistogram((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram<T4>(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetHistogram((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [Out] IntPtr values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetHistogram((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogramParameterfv")]
        public static 
        void GetHistogramParameter(Version12Deprecated target, Version12Deprecated pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetHistogramParameterfv((Version12Deprecated)target, (Version12Deprecated)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogramParameterfv")]
        public static 
        unsafe void GetHistogramParameter(Version12Deprecated target, Version12Deprecated pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetHistogramParameterfv((Version12Deprecated)target, (Version12Deprecated)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogramParameterfv")]
        public static 
        void GetHistogramParameter(Version12Deprecated target, Version12Deprecated pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetHistogramParameterfv((Version12Deprecated)target, (Version12Deprecated)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogramParameteriv")]
        public static 
        unsafe void GetHistogramParameter(Version12Deprecated target, Version12Deprecated pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetHistogramParameteriv((Version12Deprecated)target, (Version12Deprecated)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogramParameteriv")]
        public static 
        void GetHistogramParameter(Version12Deprecated target, Version12Deprecated pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetHistogramParameteriv((Version12Deprecated)target, (Version12Deprecated)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetHistogramParameteriv")]
        public static 
        void GetHistogramParameter(Version12Deprecated target, Version12Deprecated pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetHistogramParameteriv((Version12Deprecated)target, (Version12Deprecated)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        unsafe void GetInteger64(Version32 target, Int32 index, [Out] Int64* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetInteger64i_v((Version32)target, (UInt32)index, (Int64*)data);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        void GetInteger64(Version32 target, Int32 index, [Out] Int64[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* data_ptr = data)
                {
                    Delegates.glGetInteger64i_v((Version32)target, (UInt32)index, (Int64*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        void GetInteger64(Version32 target, Int32 index, [Out] out Int64 data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* data_ptr = &data)
                {
                    Delegates.glGetInteger64i_v((Version32)target, (UInt32)index, (Int64*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        unsafe void GetInteger64(Version32 target, UInt32 index, [Out] Int64* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetInteger64i_v((Version32)target, (UInt32)index, (Int64*)data);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        void GetInteger64(Version32 target, UInt32 index, [Out] Int64[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* data_ptr = data)
                {
                    Delegates.glGetInteger64i_v((Version32)target, (UInt32)index, (Int64*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version32", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        void GetInteger64(Version32 target, UInt32 index, [Out] out Int64 data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* data_ptr = &data)
                {
                    Delegates.glGetInteger64i_v((Version32)target, (UInt32)index, (Int64*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glGetInteger64v")]
        public static 
        unsafe void GetInteger64(ArbSync pname, [Out] Int64* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetInteger64v((ArbSync)pname, (Int64*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glGetInteger64v")]
        public static 
        void GetInteger64(ArbSync pname, [Out] Int64[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = @params)
                {
                    Delegates.glGetInteger64v((ArbSync)pname, (Int64*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glGetInteger64v")]
        public static 
        void GetInteger64(ArbSync pname, [Out] out Int64 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = &@params)
                {
                    Delegates.glGetInteger64v((ArbSync)pname, (Int64*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        unsafe void GetInteger(GetIndexedPName target, Int32 index, [Out] Int32* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetIntegeri_v((GetIndexedPName)target, (UInt32)index, (Int32*)data);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        void GetInteger(GetIndexedPName target, Int32 index, [Out] Int32[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* data_ptr = data)
                {
                    Delegates.glGetIntegeri_v((GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        void GetInteger(GetIndexedPName target, Int32 index, [Out] out Int32 data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* data_ptr = &data)
                {
                    Delegates.glGetIntegeri_v((GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        unsafe void GetInteger(GetIndexedPName target, UInt32 index, [Out] Int32* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetIntegeri_v((GetIndexedPName)target, (UInt32)index, (Int32*)data);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        void GetInteger(GetIndexedPName target, UInt32 index, [Out] Int32[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* data_ptr = data)
                {
                    Delegates.glGetIntegeri_v((GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        void GetInteger(GetIndexedPName target, UInt32 index, [Out] out Int32 data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* data_ptr = &data)
                {
                    Delegates.glGetIntegeri_v((GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetIntegerv")]
        public static 
        unsafe void GetInteger(GetPName pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetIntegerv((GetPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetIntegerv")]
        public static 
        void GetInteger(GetPName pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetIntegerv((GetPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetIntegerv")]
        public static 
        void GetInteger(GetPName pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetIntegerv((GetPName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return light source parameter values
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light source. The number of possible lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT where ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a light source parameter for light. Accepted symbolic names are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetLightfv")]
        public static 
        void GetLight(LightName light, LightParameter pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetLightfv((LightName)light, (LightParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return light source parameter values
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light source. The number of possible lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT where ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a light source parameter for light. Accepted symbolic names are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetLightfv")]
        public static 
        unsafe void GetLight(LightName light, LightParameter pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetLightfv((LightName)light, (LightParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return light source parameter values
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light source. The number of possible lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT where ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a light source parameter for light. Accepted symbolic names are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetLightfv")]
        public static 
        void GetLight(LightName light, LightParameter pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetLightfv((LightName)light, (LightParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return light source parameter values
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light source. The number of possible lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT where ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a light source parameter for light. Accepted symbolic names are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetLightiv")]
        public static 
        unsafe void GetLight(LightName light, LightParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetLightiv((LightName)light, (LightParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return light source parameter values
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light source. The number of possible lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT where ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a light source parameter for light. Accepted symbolic names are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetLightiv")]
        public static 
        void GetLight(LightName light, LightParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetLightiv((LightName)light, (LightParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return light source parameter values
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light source. The number of possible lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT where ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a light source parameter for light. Accepted symbolic names are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetLightiv")]
        public static 
        void GetLight(LightName light, LightParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetLightiv((LightName)light, (LightParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapdv")]
        public static 
        unsafe void GetMap(MapTarget target, GetMapQuery query, [Out] Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMapdv((MapTarget)target, (GetMapQuery)query, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapdv")]
        public static 
        void GetMap(MapTarget target, GetMapQuery query, [Out] Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glGetMapdv((MapTarget)target, (GetMapQuery)query, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapdv")]
        public static 
        void GetMap(MapTarget target, GetMapQuery query, [Out] out Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glGetMapdv((MapTarget)target, (GetMapQuery)query, (Double*)v_ptr);
                    v = *v_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapfv")]
        public static 
        void GetMap(MapTarget target, GetMapQuery query, [Out] out Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glGetMapfv((MapTarget)target, (GetMapQuery)query, (Single*)v_ptr);
                    v = *v_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapfv")]
        public static 
        unsafe void GetMap(MapTarget target, GetMapQuery query, [Out] Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMapfv((MapTarget)target, (GetMapQuery)query, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapfv")]
        public static 
        void GetMap(MapTarget target, GetMapQuery query, [Out] Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glGetMapfv((MapTarget)target, (GetMapQuery)query, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapiv")]
        public static 
        unsafe void GetMap(MapTarget target, GetMapQuery query, [Out] Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMapiv((MapTarget)target, (GetMapQuery)query, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapiv")]
        public static 
        void GetMap(MapTarget target, GetMapQuery query, [Out] Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glGetMapiv((MapTarget)target, (GetMapQuery)query, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return evaluator parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.
        /// </para>
        /// </param>
        /// <param name="query">
        /// <para>
        /// Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMapiv")]
        public static 
        void GetMap(MapTarget target, GetMapQuery query, [Out] out Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glGetMapiv((MapTarget)target, (GetMapQuery)query, (Int32*)v_ptr);
                    v = *v_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return material parameters
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which of the two materials is being queried. GL_FRONT or GL_BACK are accepted, representing the front and back materials, respectively.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the material parameter to return. GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, and GL_COLOR_INDEXES are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMaterialfv")]
        public static 
        void GetMaterial(MaterialFace face, MaterialParameter pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetMaterialfv((MaterialFace)face, (MaterialParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return material parameters
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which of the two materials is being queried. GL_FRONT or GL_BACK are accepted, representing the front and back materials, respectively.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the material parameter to return. GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, and GL_COLOR_INDEXES are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMaterialfv")]
        public static 
        unsafe void GetMaterial(MaterialFace face, MaterialParameter pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMaterialfv((MaterialFace)face, (MaterialParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return material parameters
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which of the two materials is being queried. GL_FRONT or GL_BACK are accepted, representing the front and back materials, respectively.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the material parameter to return. GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, and GL_COLOR_INDEXES are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMaterialfv")]
        public static 
        void GetMaterial(MaterialFace face, MaterialParameter pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetMaterialfv((MaterialFace)face, (MaterialParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return material parameters
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which of the two materials is being queried. GL_FRONT or GL_BACK are accepted, representing the front and back materials, respectively.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the material parameter to return. GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, and GL_COLOR_INDEXES are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMaterialiv")]
        public static 
        unsafe void GetMaterial(MaterialFace face, MaterialParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMaterialiv((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return material parameters
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which of the two materials is being queried. GL_FRONT or GL_BACK are accepted, representing the front and back materials, respectively.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the material parameter to return. GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, and GL_COLOR_INDEXES are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMaterialiv")]
        public static 
        void GetMaterial(MaterialFace face, MaterialParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetMaterialiv((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return material parameters
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which of the two materials is being queried. GL_FRONT or GL_BACK are accepted, representing the front and back materials, respectively.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the material parameter to return. GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, and GL_COLOR_INDEXES are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetMaterialiv")]
        public static 
        void GetMaterial(MaterialFace face, MaterialParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetMaterialiv((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax<T4>(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [In, Out] ref T4 values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetMinmax((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax<T4>(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[,,] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetMinmax((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax<T4>(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[,] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetMinmax((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax<T4>(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetMinmax((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax(Version12Deprecated target, bool reset, PixelFormat format, PixelType type, [Out] IntPtr values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMinmax((Version12Deprecated)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmaxParameterfv")]
        public static 
        void GetMinmaxParameter(Version12Deprecated target, Version12Deprecated pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetMinmaxParameterfv((Version12Deprecated)target, (Version12Deprecated)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmaxParameterfv")]
        public static 
        unsafe void GetMinmaxParameter(Version12Deprecated target, Version12Deprecated pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMinmaxParameterfv((Version12Deprecated)target, (Version12Deprecated)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmaxParameterfv")]
        public static 
        void GetMinmaxParameter(Version12Deprecated target, Version12Deprecated pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetMinmaxParameterfv((Version12Deprecated)target, (Version12Deprecated)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmaxParameteriv")]
        public static 
        unsafe void GetMinmaxParameter(Version12Deprecated target, Version12Deprecated pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMinmaxParameteriv((Version12Deprecated)target, (Version12Deprecated)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmaxParameteriv")]
        public static 
        void GetMinmaxParameter(Version12Deprecated target, Version12Deprecated pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetMinmaxParameteriv((Version12Deprecated)target, (Version12Deprecated)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetMinmaxParameteriv")]
        public static 
        void GetMinmaxParameter(Version12Deprecated target, Version12Deprecated pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetMinmaxParameteriv((Version12Deprecated)target, (Version12Deprecated)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        void GetMultisample(ArbTextureMultisample pname, Int32 index, [Out] out Single val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* val_ptr = &val)
                {
                    Delegates.glGetMultisamplefv((ArbTextureMultisample)pname, (UInt32)index, (Single*)val_ptr);
                    val = *val_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        unsafe void GetMultisample(ArbTextureMultisample pname, Int32 index, [Out] Single* val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMultisamplefv((ArbTextureMultisample)pname, (UInt32)index, (Single*)val);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        void GetMultisample(ArbTextureMultisample pname, Int32 index, [Out] Single[] val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* val_ptr = val)
                {
                    Delegates.glGetMultisamplefv((ArbTextureMultisample)pname, (UInt32)index, (Single*)val_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        void GetMultisample(ArbTextureMultisample pname, UInt32 index, [Out] out Single val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* val_ptr = &val)
                {
                    Delegates.glGetMultisamplefv((ArbTextureMultisample)pname, (UInt32)index, (Single*)val_ptr);
                    val = *val_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        unsafe void GetMultisample(ArbTextureMultisample pname, UInt32 index, [Out] Single* val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMultisamplefv((ArbTextureMultisample)pname, (UInt32)index, (Single*)val);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        void GetMultisample(ArbTextureMultisample pname, UInt32 index, [Out] Single[] val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* val_ptr = val)
                {
                    Delegates.glGetMultisamplefv((ArbTextureMultisample)pname, (UInt32)index, (Single*)val_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] out Single values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = &values)
                {
                    Delegates.glGetPixelMapfv((PixelMap)map, (Single*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
        public static 
        unsafe void GetPixelMap(PixelMap map, [Out] Single* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapfv((PixelMap)map, (Single*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] Single[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = values)
                {
                    Delegates.glGetPixelMapfv((PixelMap)map, (Single*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        unsafe void GetPixelMap(PixelMap map, [Out] Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapuiv((PixelMap)map, (UInt32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] Int32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = values)
                {
                    Delegates.glGetPixelMapuiv((PixelMap)map, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] out Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glGetPixelMapuiv((PixelMap)map, (UInt32*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] out UInt32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* values_ptr = &values)
                {
                    Delegates.glGetPixelMapuiv((PixelMap)map, (UInt32*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        unsafe void GetPixelMap(PixelMap map, [Out] UInt32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapuiv((PixelMap)map, (UInt32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] UInt32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* values_ptr = values)
                {
                    Delegates.glGetPixelMapuiv((PixelMap)map, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        unsafe void GetPixelMap(PixelMap map, [Out] Int16* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapusv((PixelMap)map, (UInt16*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] Int16[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* values_ptr = values)
                {
                    Delegates.glGetPixelMapusv((PixelMap)map, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] out Int16 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* values_ptr = &values)
                {
                    Delegates.glGetPixelMapusv((PixelMap)map, (UInt16*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] out UInt16 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* values_ptr = &values)
                {
                    Delegates.glGetPixelMapusv((PixelMap)map, (UInt16*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        unsafe void GetPixelMap(PixelMap map, [Out] UInt16* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapusv((PixelMap)map, (UInt16*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the specified pixel map
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel map contents.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        void GetPixelMap(PixelMap map, [Out] UInt16[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* values_ptr = values)
                {
                    Delegates.glGetPixelMapusv((PixelMap)map, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified pointer
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the array or buffer pointer to be returned. Symbolic constants GL_COLOR_ARRAY_POINTER, GL_EDGE_FLAG_ARRAY_POINTER, GL_FOG_COORD_ARRAY_POINTER, GL_FEEDBACK_BUFFER_POINTER, GL_INDEX_ARRAY_POINTER, GL_NORMAL_ARRAY_POINTER, GL_SECONDARY_COLOR_ARRAY_POINTER, GL_SELECTION_BUFFER_POINTER, GL_TEXTURE_COORD_ARRAY_POINTER, or GL_VERTEX_ARRAY_POINTER are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer<T1>(GetPointervPName pname, [In, Out] ref T1 @params)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetPointerv((GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified pointer
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the array or buffer pointer to be returned. Symbolic constants GL_COLOR_ARRAY_POINTER, GL_EDGE_FLAG_ARRAY_POINTER, GL_FOG_COORD_ARRAY_POINTER, GL_FEEDBACK_BUFFER_POINTER, GL_INDEX_ARRAY_POINTER, GL_NORMAL_ARRAY_POINTER, GL_SECONDARY_COLOR_ARRAY_POINTER, GL_SELECTION_BUFFER_POINTER, GL_TEXTURE_COORD_ARRAY_POINTER, or GL_VERTEX_ARRAY_POINTER are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer<T1>(GetPointervPName pname, [In, Out] T1[,,] @params)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetPointerv((GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified pointer
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the array or buffer pointer to be returned. Symbolic constants GL_COLOR_ARRAY_POINTER, GL_EDGE_FLAG_ARRAY_POINTER, GL_FOG_COORD_ARRAY_POINTER, GL_FEEDBACK_BUFFER_POINTER, GL_INDEX_ARRAY_POINTER, GL_NORMAL_ARRAY_POINTER, GL_SECONDARY_COLOR_ARRAY_POINTER, GL_SELECTION_BUFFER_POINTER, GL_TEXTURE_COORD_ARRAY_POINTER, or GL_VERTEX_ARRAY_POINTER are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer<T1>(GetPointervPName pname, [In, Out] T1[,] @params)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetPointerv((GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified pointer
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the array or buffer pointer to be returned. Symbolic constants GL_COLOR_ARRAY_POINTER, GL_EDGE_FLAG_ARRAY_POINTER, GL_FOG_COORD_ARRAY_POINTER, GL_FEEDBACK_BUFFER_POINTER, GL_INDEX_ARRAY_POINTER, GL_NORMAL_ARRAY_POINTER, GL_SECONDARY_COLOR_ARRAY_POINTER, GL_SELECTION_BUFFER_POINTER, GL_TEXTURE_COORD_ARRAY_POINTER, or GL_VERTEX_ARRAY_POINTER are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer<T1>(GetPointervPName pname, [In, Out] T1[] @params)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetPointerv((GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified pointer
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the array or buffer pointer to be returned. Symbolic constants GL_COLOR_ARRAY_POINTER, GL_EDGE_FLAG_ARRAY_POINTER, GL_FOG_COORD_ARRAY_POINTER, GL_FEEDBACK_BUFFER_POINTER, GL_INDEX_ARRAY_POINTER, GL_NORMAL_ARRAY_POINTER, GL_SECONDARY_COLOR_ARRAY_POINTER, GL_SELECTION_BUFFER_POINTER, GL_TEXTURE_COORD_ARRAY_POINTER, or GL_VERTEX_ARRAY_POINTER are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the pointer value specified by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer(GetPointervPName pname, [Out] IntPtr @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPointerv((GetPointervPName)pname, (IntPtr)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the polygon stipple pattern
        /// </summary>
        /// <param name="pattern">
        /// <para>
        /// Returns the stipple pattern. The initial value is all 1's.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
        public static 
        unsafe void GetPolygonStipple([Out] Byte* mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPolygonStipple((Byte*)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the polygon stipple pattern
        /// </summary>
        /// <param name="pattern">
        /// <para>
        /// Returns the stipple pattern. The initial value is all 1's.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
        public static 
        void GetPolygonStipple([Out] Byte[] mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* mask_ptr = mask)
                {
                    Delegates.glGetPolygonStipple((Byte*)mask_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the polygon stipple pattern
        /// </summary>
        /// <param name="pattern">
        /// <para>
        /// Returns the stipple pattern. The initial value is all 1's.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
        public static 
        void GetPolygonStipple([Out] out Byte mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* mask_ptr = &mask)
                {
                    Delegates.glGetPolygonStipple((Byte*)mask_ptr);
                    mask = *mask_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the information log for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object whose information log is to be queried.
        /// </para>
        /// </param>
        /// <param name="maxLength">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned information log.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in infoLog (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies an array of characters that is used to return the information log.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
        public static 
        unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramInfoLog((UInt32)program, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the information log for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object whose information log is to be queried.
        /// </para>
        /// </param>
        /// <param name="maxLength">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned information log.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in infoLog (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies an array of characters that is used to return the information log.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
        public static 
        void GetProgramInfoLog(Int32 program, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetProgramInfoLog((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the information log for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object whose information log is to be queried.
        /// </para>
        /// </param>
        /// <param name="maxLength">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned information log.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in infoLog (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies an array of characters that is used to return the information log.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
        public static 
        unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramInfoLog((UInt32)program, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the information log for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object whose information log is to be queried.
        /// </para>
        /// </param>
        /// <param name="maxLength">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned information log.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in infoLog (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies an array of characters that is used to return the information log.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
        public static 
        void GetProgramInfoLog(UInt32 program, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetProgramInfoLog((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        unsafe void GetProgram(Int32 program, ProgramParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramiv((UInt32)program, (ProgramParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        void GetProgram(Int32 program, ProgramParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramiv((UInt32)program, (ProgramParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        void GetProgram(Int32 program, ProgramParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramiv((UInt32)program, (ProgramParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        unsafe void GetProgram(UInt32 program, ProgramParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramiv((UInt32)program, (ProgramParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        void GetProgram(UInt32 program, ProgramParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramiv((UInt32)program, (ProgramParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        void GetProgram(UInt32 program, ProgramParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramiv((UInt32)program, (ProgramParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object target parameter. Accepted values are GL_CURRENT_QUERY or GL_QUERY_COUNTER_BITS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryiv")]
        public static 
        unsafe void GetQuery(QueryTarget target, GetQueryParam pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryiv((QueryTarget)target, (GetQueryParam)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object target parameter. Accepted values are GL_CURRENT_QUERY or GL_QUERY_COUNTER_BITS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryiv")]
        public static 
        void GetQuery(QueryTarget target, GetQueryParam pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetQueryiv((QueryTarget)target, (GetQueryParam)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object target parameter. Accepted values are GL_CURRENT_QUERY or GL_QUERY_COUNTER_BITS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryiv")]
        public static 
        void GetQuery(QueryTarget target, GetQueryParam pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryiv((QueryTarget)target, (GetQueryParam)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        unsafe void GetQueryObject(Int32 id, GetQueryObjectParam pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjectiv((UInt32)id, (GetQueryObjectParam)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        void GetQueryObject(Int32 id, GetQueryObjectParam pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjectiv((UInt32)id, (GetQueryObjectParam)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        void GetQueryObject(Int32 id, GetQueryObjectParam pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjectiv((UInt32)id, (GetQueryObjectParam)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        unsafe void GetQueryObject(UInt32 id, GetQueryObjectParam pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjectiv((UInt32)id, (GetQueryObjectParam)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        void GetQueryObject(UInt32 id, GetQueryObjectParam pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjectiv((UInt32)id, (GetQueryObjectParam)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        void GetQueryObject(UInt32 id, GetQueryObjectParam pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjectiv((UInt32)id, (GetQueryObjectParam)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
        public static 
        void GetQueryObject(UInt32 id, GetQueryObjectParam pname, [Out] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjectuiv((UInt32)id, (GetQueryObjectParam)pname, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
        public static 
        unsafe void GetQueryObject(UInt32 id, GetQueryObjectParam pname, [Out] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjectuiv((UInt32)id, (GetQueryObjectParam)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return parameters of a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
        public static 
        void GetQueryObject(UInt32 id, GetQueryObjectParam pname, [Out] UInt32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjectuiv((UInt32)id, (GetQueryObjectParam)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
        public static 
        unsafe void GetRenderbufferParameter(RenderbufferTarget target, RenderbufferParameterName pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetRenderbufferParameteriv((RenderbufferTarget)target, (RenderbufferParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
        public static 
        void GetRenderbufferParameter(RenderbufferTarget target, RenderbufferParameterName pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetRenderbufferParameteriv((RenderbufferTarget)target, (RenderbufferParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
        public static 
        void GetRenderbufferParameter(RenderbufferTarget target, RenderbufferParameterName pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetRenderbufferParameteriv((RenderbufferTarget)target, (RenderbufferParameterName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T3,T4,T5>(Version12Deprecated target, PixelFormat format, PixelType type, [In, Out] ref T3 row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
            where T3 : struct
            where T4 : struct
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T3,T4,T5>(Version12Deprecated target, PixelFormat format, PixelType type, [In, Out] T3[,,] row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
            where T3 : struct
            where T4 : struct
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T3,T4,T5>(Version12Deprecated target, PixelFormat format, PixelType type, [In, Out] T3[,] row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
            where T3 : struct
            where T4 : struct
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T3,T4,T5>(Version12Deprecated target, PixelFormat format, PixelType type, [In, Out] T3[] row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
            where T3 : struct
            where T4 : struct
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T4,T5>(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [In, Out] ref T4 column, [In, Out] T5[,,] span)
            where T4 : struct
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T4,T5>(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
            where T4 : struct
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T4,T5>(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [In, Out] T4[,] column, [In, Out] T5[,,] span)
            where T4 : struct
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T4,T5>(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [In, Out] T4[] column, [In, Out] T5[,,] span)
            where T4 : struct
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T5>(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [In, Out] ref T5 span)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T5>(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [In, Out] T5[,,] span)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T5>(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [In, Out] T5[,] span)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T5>(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [In, Out] T5[] span)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
            try
            {
                Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span_ptr.AddrOfPinnedObject());
            }
            finally
            {
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter(Version12Deprecated target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [Out] IntPtr span)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSeparableFilter((Version12Deprecated)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the information log for a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object whose information log is to be queried.
        /// </para>
        /// </param>
        /// <param name="maxLength">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned information log.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in infoLog (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies an array of characters that is used to return the information log.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
        public static 
        unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderInfoLog((UInt32)shader, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the information log for a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object whose information log is to be queried.
        /// </para>
        /// </param>
        /// <param name="maxLength">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned information log.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in infoLog (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies an array of characters that is used to return the information log.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
        public static 
        void GetShaderInfoLog(Int32 shader, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetShaderInfoLog((UInt32)shader, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the information log for a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object whose information log is to be queried.
        /// </para>
        /// </param>
        /// <param name="maxLength">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned information log.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in infoLog (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies an array of characters that is used to return the information log.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
        public static 
        unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderInfoLog((UInt32)shader, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the information log for a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object whose information log is to be queried.
        /// </para>
        /// </param>
        /// <param name="maxLength">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned information log.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in infoLog (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies an array of characters that is used to return the information log.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
        public static 
        void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetShaderInfoLog((UInt32)shader, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        unsafe void GetShader(Int32 shader, ShaderParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderiv((UInt32)shader, (ShaderParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        void GetShader(Int32 shader, ShaderParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetShaderiv((UInt32)shader, (ShaderParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        void GetShader(Int32 shader, ShaderParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetShaderiv((UInt32)shader, (ShaderParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        unsafe void GetShader(UInt32 shader, ShaderParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderiv((UInt32)shader, (ShaderParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        void GetShader(UInt32 shader, ShaderParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetShaderiv((UInt32)shader, (ShaderParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns a parameter from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        void GetShader(UInt32 shader, ShaderParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetShaderiv((UInt32)shader, (ShaderParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the source code string from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned source code string.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in source (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="source">
        /// <para>
        /// Specifies an array of characters that is used to return the source code string.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderSource")]
        public static 
        unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder source)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderSource((UInt32)shader, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)source);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the source code string from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned source code string.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in source (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="source">
        /// <para>
        /// Specifies an array of characters that is used to return the source code string.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderSource")]
        public static 
        void GetShaderSource(Int32 shader, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder source)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetShaderSource((UInt32)shader, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)source);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the source code string from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned source code string.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in source (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="source">
        /// <para>
        /// Specifies an array of characters that is used to return the source code string.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderSource")]
        public static 
        unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [Out] Int32* length, [Out] System.Text.StringBuilder source)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderSource((UInt32)shader, (Int32)bufSize, (Int32*)length, (System.Text.StringBuilder)source);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the source code string from a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be queried.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the character buffer for storing the returned source code string.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Returns the length of the string returned in source (excluding the null terminator).
        /// </para>
        /// </param>
        /// <param name="source">
        /// <para>
        /// Specifies an array of characters that is used to return the source code string.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetShaderSource")]
        public static 
        void GetShaderSource(UInt32 shader, Int32 bufSize, [Out] out Int32 length, [Out] System.Text.StringBuilder source)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetShaderSource((UInt32)shader, (Int32)bufSize, (Int32*)length_ptr, (System.Text.StringBuilder)source);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a string describing the current GL connection
        /// </summary>
        /// <param name="name">
        /// <para>
        /// Specifies a symbolic constant, one of GL_VENDOR, GL_RENDERER, GL_VERSION, GL_SHADING_LANGUAGE_VERSION, or GL_EXTENSIONS.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetString")]
        public static 
        string GetString(StringName name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(Delegates.glGetString((StringName)name));
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a string describing the current GL connection
        /// </summary>
        /// <param name="name">
        /// <para>
        /// Specifies a symbolic constant, one of GL_VENDOR, GL_RENDERER, GL_VERSION, GL_SHADING_LANGUAGE_VERSION, or GL_EXTENSIONS.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetStringi")]
        public static 
        string GetString(StringName name, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(Delegates.glGetStringi((StringName)name, (UInt32)index));
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a string describing the current GL connection
        /// </summary>
        /// <param name="name">
        /// <para>
        /// Specifies a symbolic constant, one of GL_VENDOR, GL_RENDERER, GL_VERSION, GL_SHADING_LANGUAGE_VERSION, or GL_EXTENSIONS.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetStringi")]
        public static 
        string GetString(StringName name, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return System.Runtime.InteropServices.Marshal.PtrToStringAnsi(Delegates.glGetStringi((StringName)name, (UInt32)index));
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glGetSynciv")]
        public static 
        unsafe void GetSync(IntPtr sync, ArbSync pname, Int32 bufSize, [Out] Int32* length, [Out] Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSynciv((IntPtr)sync, (ArbSync)pname, (Int32)bufSize, (Int32*)length, (Int32*)values);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glGetSynciv")]
        public static 
        unsafe void GetSync(IntPtr sync, ArbSync pname, Int32 bufSize, [Out] Int32* length, [Out] Int32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            fixed (Int32* values_ptr = values)
            {
                Delegates.glGetSynciv((IntPtr)sync, (ArbSync)pname, (Int32)bufSize, (Int32*)length, (Int32*)values_ptr);
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glGetSynciv")]
        public static 
        void GetSync(IntPtr sync, ArbSync pname, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glGetSynciv((IntPtr)sync, (ArbSync)pname, (Int32)bufSize, (Int32*)length_ptr, (Int32*)values_ptr);
                    length = *length_ptr;
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL, or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture environment parameter. Accepted values are GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
        public static 
        void GetTexEnv(TextureEnvTarget target, TextureEnvParameter pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetTexEnvfv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL, or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture environment parameter. Accepted values are GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
        public static 
        unsafe void GetTexEnv(TextureEnvTarget target, TextureEnvParameter pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexEnvfv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL, or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture environment parameter. Accepted values are GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
        public static 
        void GetTexEnv(TextureEnvTarget target, TextureEnvParameter pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetTexEnvfv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL, or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture environment parameter. Accepted values are GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexEnviv")]
        public static 
        unsafe void GetTexEnv(TextureEnvTarget target, TextureEnvParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexEnviv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL, or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture environment parameter. Accepted values are GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexEnviv")]
        public static 
        void GetTexEnv(TextureEnvTarget target, TextureEnvParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexEnviv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL, or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture environment parameter. Accepted values are GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexEnviv")]
        public static 
        void GetTexEnv(TextureEnvTarget target, TextureEnvParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexEnviv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGendv")]
        public static 
        unsafe void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexGendv((TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGendv")]
        public static 
        void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetTexGendv((TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGendv")]
        public static 
        void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetTexGendv((TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGenfv")]
        public static 
        void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetTexGenfv((TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGenfv")]
        public static 
        unsafe void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexGenfv((TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGenfv")]
        public static 
        void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetTexGenfv((TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGeniv")]
        public static 
        unsafe void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexGeniv((TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGeniv")]
        public static 
        void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexGeniv((TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture coordinate generation parameters
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glGetTexGeniv")]
        public static 
        void GetTexGen(TextureCoordName coord, TextureGenParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexGeniv((TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies a pixel format for the returned data. The supported formats are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies a pixel type for the returned data. The supported types are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the texture image. Should be a pointer to an array of the type specified by type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage<T4>(TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] ref T4 pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glGetTexImage((TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies a pixel format for the returned data. The supported formats are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies a pixel type for the returned data. The supported types are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the texture image. Should be a pointer to an array of the type specified by type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage<T4>(TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T4[,,] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glGetTexImage((TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies a pixel format for the returned data. The supported formats are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies a pixel type for the returned data. The supported types are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the texture image. Should be a pointer to an array of the type specified by type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage<T4>(TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T4[,] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glGetTexImage((TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies a pixel format for the returned data. The supported formats are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies a pixel type for the returned data. The supported types are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the texture image. Should be a pointer to an array of the type specified by type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage<T4>(TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T4[] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glGetTexImage((TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies a pixel format for the returned data. The supported formats are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies a pixel type for the returned data. The supported types are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="img">
        /// <para>
        /// Returns the texture image. Should be a pointer to an array of the type specified by type.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage(TextureTarget target, Int32 level, PixelFormat format, PixelType type, [Out] IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexImage((TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE, GL_TEXTURE_INTENSITY_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, and GL_TEXTURE_COMPRESSED_IMAGE_SIZE are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
        public static 
        void GetTexLevelParameter(TextureTarget target, Int32 level, GetTextureParameter pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetTexLevelParameterfv((TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE, GL_TEXTURE_INTENSITY_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, and GL_TEXTURE_COMPRESSED_IMAGE_SIZE are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
        public static 
        unsafe void GetTexLevelParameter(TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexLevelParameterfv((TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE, GL_TEXTURE_INTENSITY_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, and GL_TEXTURE_COMPRESSED_IMAGE_SIZE are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
        public static 
        void GetTexLevelParameter(TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetTexLevelParameterfv((TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE, GL_TEXTURE_INTENSITY_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, and GL_TEXTURE_COMPRESSED_IMAGE_SIZE are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
        public static 
        unsafe void GetTexLevelParameter(TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexLevelParameteriv((TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE, GL_TEXTURE_INTENSITY_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, and GL_TEXTURE_COMPRESSED_IMAGE_SIZE are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
        public static 
        void GetTexLevelParameter(TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexLevelParameteriv((TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level is the th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE, GL_TEXTURE_INTENSITY_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, and GL_TEXTURE_COMPRESSED_IMAGE_SIZE are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
        public static 
        void GetTexLevelParameter(TextureTarget target, Int32 level, GetTextureParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexLevelParameteriv((TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, and GL_TEXTURE_CUBE_MAP are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_PRIORITY, GL_TEXTURE_RESIDENT, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, and GL_GENERATE_MIPMAP are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
        public static 
        void GetTexParameter(TextureTarget target, GetTextureParameter pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetTexParameterfv((TextureTarget)target, (GetTextureParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, and GL_TEXTURE_CUBE_MAP are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_PRIORITY, GL_TEXTURE_RESIDENT, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, and GL_GENERATE_MIPMAP are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
        public static 
        unsafe void GetTexParameter(TextureTarget target, GetTextureParameter pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexParameterfv((TextureTarget)target, (GetTextureParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, and GL_TEXTURE_CUBE_MAP are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_PRIORITY, GL_TEXTURE_RESIDENT, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, and GL_GENERATE_MIPMAP are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
        public static 
        void GetTexParameter(TextureTarget target, GetTextureParameter pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetTexParameterfv((TextureTarget)target, (GetTextureParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
        public static 
        unsafe void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexParameterIiv((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
        public static 
        void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexParameterIiv((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
        public static 
        void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexParameterIiv((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
        public static 
        void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetTexParameterIuiv((TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
        public static 
        unsafe void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexParameterIuiv((TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
        public static 
        void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] UInt32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = @params)
                {
                    Delegates.glGetTexParameterIuiv((TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, and GL_TEXTURE_CUBE_MAP are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_PRIORITY, GL_TEXTURE_RESIDENT, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, and GL_GENERATE_MIPMAP are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
        public static 
        unsafe void GetTexParameter(TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexParameteriv((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, and GL_TEXTURE_CUBE_MAP are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_PRIORITY, GL_TEXTURE_RESIDENT, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, and GL_GENERATE_MIPMAP are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
        public static 
        void GetTexParameter(TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexParameteriv((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return texture parameter values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, and GL_TEXTURE_CUBE_MAP are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_PRIORITY, GL_TEXTURE_RESIDENT, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, and GL_GENERATE_MIPMAP are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
        public static 
        void GetTexParameter(TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexParameteriv((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
        public static 
        unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] ActiveAttribType* type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTransformFeedbackVarying((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (ActiveAttribType*)type, (System.Text.StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
        public static 
        void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out ActiveAttribType type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (ActiveAttribType* type_ptr = &type)
                {
                    Delegates.glGetTransformFeedbackVarying((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (ActiveAttribType*)type_ptr, (System.Text.StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
        public static 
        unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] ActiveAttribType* type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTransformFeedbackVarying((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (ActiveAttribType*)type, (System.Text.StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
        public static 
        void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out ActiveAttribType type, [Out] System.Text.StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (ActiveAttribType* type_ptr = &type)
                {
                    Delegates.glGetTransformFeedbackVarying((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (ActiveAttribType*)type_ptr, (System.Text.StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformBlockIndex")]
        public static 
        Int32 GetUniformBlockIndex(Int32 program, String uniformBlockName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetUniformBlockIndex((UInt32)program, (String)uniformBlockName);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformBlockIndex")]
        public static 
        Int32 GetUniformBlockIndex(UInt32 program, String uniformBlockName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetUniformBlockIndex((UInt32)program, (String)uniformBlockName);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetUniformfv((UInt32)program, (Int32)location, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        unsafe void GetUniform(Int32 program, Int32 location, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformfv((UInt32)program, (Int32)location, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetUniformfv((UInt32)program, (Int32)location, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetUniformfv((UInt32)program, (Int32)location, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        unsafe void GetUniform(UInt32 program, Int32 location, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformfv((UInt32)program, (Int32)location, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetUniformfv((UInt32)program, (Int32)location, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [Out] Int32* uniformIndices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String[])uniformNames, (UInt32*)uniformIndices);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [Out] Int32[] uniformIndices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* uniformIndices_ptr = uniformIndices)
                {
                    Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String[])uniformNames, (UInt32*)uniformIndices_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [Out] out Int32 uniformIndices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* uniformIndices_ptr = &uniformIndices)
                {
                    Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String[])uniformNames, (UInt32*)uniformIndices_ptr);
                    uniformIndices = *uniformIndices_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [Out] out UInt32 uniformIndices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* uniformIndices_ptr = &uniformIndices)
                {
                    Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String[])uniformNames, (UInt32*)uniformIndices_ptr);
                    uniformIndices = *uniformIndices_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [Out] UInt32* uniformIndices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String[])uniformNames, (UInt32*)uniformIndices);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [Out] UInt32[] uniformIndices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* uniformIndices_ptr = uniformIndices)
                {
                    Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String[])uniformNames, (UInt32*)uniformIndices_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        unsafe void GetUniform(Int32 program, Int32 location, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformiv((UInt32)program, (Int32)location, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetUniformiv((UInt32)program, (Int32)location, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetUniformiv((UInt32)program, (Int32)location, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        unsafe void GetUniform(UInt32 program, Int32 location, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformiv((UInt32)program, (Int32)location, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetUniformiv((UInt32)program, (Int32)location, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetUniformiv((UInt32)program, (Int32)location, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the location of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Points to a null terminated string containing the name of the uniform variable whose location is to be queried.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformLocation")]
        public static 
        Int32 GetUniformLocation(Int32 program, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetUniformLocation((UInt32)program, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the location of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Points to a null terminated string containing the name of the uniform variable whose location is to be queried.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetUniformLocation")]
        public static 
        Int32 GetUniformLocation(UInt32 program, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetUniformLocation((UInt32)program, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetUniformuiv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [Out] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetUniformuiv((UInt32)program, (Int32)location, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetUniformuiv")]
        public static 
        unsafe void GetUniform(UInt32 program, Int32 location, [Out] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformuiv((UInt32)program, (Int32)location, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetUniformuiv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [Out] UInt32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = @params)
                {
                    Delegates.glGetUniformuiv((UInt32)program, (Int32)location, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        unsafe void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribdv((UInt32)index, (VertexAttribParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribdv((UInt32)index, (VertexAttribParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribdv((UInt32)index, (VertexAttribParameter)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        unsafe void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribdv((UInt32)index, (VertexAttribParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribdv((UInt32)index, (VertexAttribParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribdv((UInt32)index, (VertexAttribParameter)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribfv((UInt32)index, (VertexAttribParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        unsafe void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribfv((UInt32)index, (VertexAttribParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribfv((UInt32)index, (VertexAttribParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribfv((UInt32)index, (VertexAttribParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        unsafe void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribfv((UInt32)index, (VertexAttribParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribfv((UInt32)index, (VertexAttribParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
        public static 
        unsafe void GetVertexAttribI(Int32 index, VertexAttribParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribIiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
        public static 
        void GetVertexAttribI(Int32 index, VertexAttribParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribIiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
        public static 
        unsafe void GetVertexAttribI(UInt32 index, VertexAttribParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribIiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
        public static 
        void GetVertexAttribI(UInt32 index, VertexAttribParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribIiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
        public static 
        void GetVertexAttribI(UInt32 index, VertexAttribParameter pname, [Out] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribIuiv((UInt32)index, (VertexAttribParameter)pname, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
        public static 
        unsafe void GetVertexAttribI(UInt32 index, VertexAttribParameter pname, [Out] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribIuiv((UInt32)index, (VertexAttribParameter)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        unsafe void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        void GetVertexAttrib(Int32 index, VertexAttribParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        unsafe void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        void GetVertexAttrib(UInt32 index, VertexAttribParameter pname, [Out] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribiv((UInt32)index, (VertexAttribParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(Int32 index, VertexAttribPointerType pname, [In, Out] ref T2 pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(Int32 index, VertexAttribPointerType pname, [In, Out] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(Int32 index, VertexAttribPointerType pname, [In, Out] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(Int32 index, VertexAttribPointerType pname, [In, Out] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer(Int32 index, VertexAttribPointerType pname, [Out] IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(UInt32 index, VertexAttribPointerType pname, [In, Out] ref T2 pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(UInt32 index, VertexAttribPointerType pname, [In, Out] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(UInt32 index, VertexAttribPointerType pname, [In, Out] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(UInt32 index, VertexAttribPointerType pname, [In, Out] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Return the address of the specified generic vertex attribute pointer
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be returned.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Returns the pointer value.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer(UInt32 index, VertexAttribPointerType pname, [Out] IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribPointerv((UInt32)index, (VertexAttribPointerType)pname, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify implementation-specific hints
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a symbolic constant indicating the behavior to be controlled. GL_FOG_HINT, GL_GENERATE_MIPMAP_HINT, GL_LINE_SMOOTH_HINT, GL_PERSPECTIVE_CORRECTION_HINT, GL_POINT_SMOOTH_HINT, GL_POLYGON_SMOOTH_HINT, GL_TEXTURE_COMPRESSION_HINT, and GL_FRAGMENT_SHADER_DERIVATIVE_HINT are accepted.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies a symbolic constant indicating the desired behavior. GL_FASTEST, GL_NICEST, and GL_DONT_CARE are accepted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glHint")]
        public static 
        void Hint(HintTarget target, HintMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glHint((HintTarget)target, (HintMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The histogram whose parameters are to be set. Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the histogram table. Must be a power of 2.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The format of entries in the histogram table. Must be one of GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="sink">
        /// <para>
        /// If GL_TRUE, pixels will be consumed by the histogramming process and no drawing or texture loading will take place. If GL_FALSE, pixels will proceed to the minmax process after histogramming.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glHistogram")]
        public static 
        void Histogram(Version12Deprecated target, Int32 width, PixelInternalFormat internalformat, bool sink)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glHistogram((Version12Deprecated)target, (Int32)width, (PixelInternalFormat)internalformat, (bool)sink);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexd")]
        public static 
        void Index(Double c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexd((Double)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexdv")]
        public static 
        unsafe void Index(Double* c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexdv((Double*)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexf")]
        public static 
        void Index(Single c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexf((Single)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexfv")]
        public static 
        unsafe void Index(Single* c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexfv((Single*)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexi")]
        public static 
        void Index(Int32 c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexi((Int32)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexiv")]
        public static 
        unsafe void Index(Int32* c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexiv((Int32*)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the writing of individual bits in the color index buffers
        /// </summary>
        /// <param name="mask">
        /// <para>
        /// Specifies a bit mask to enable and disable the writing of individual bits in the color index buffers. Initially, the mask is all 1's.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexMask")]
        public static 
        void IndexMask(Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexMask((UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the writing of individual bits in the color index buffers
        /// </summary>
        /// <param name="mask">
        /// <para>
        /// Specifies a bit mask to enable and disable the writing of individual bits in the color index buffers. Initially, the mask is all 1's.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexMask")]
        public static 
        void IndexMask(UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexMask((UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer<T2>(IndexPointerType type, Int32 stride, [In, Out] ref T2 pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glIndexPointer((IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer<T2>(IndexPointerType type, Int32 stride, [In, Out] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glIndexPointer((IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer<T2>(IndexPointerType type, Int32 stride, [In, Out] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glIndexPointer((IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer<T2>(IndexPointerType type, Int32 stride, [In, Out] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glIndexPointer((IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer(IndexPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexPointer((IndexPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexs")]
        public static 
        void Index(Int16 c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexs((Int16)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIndexsv")]
        public static 
        unsafe void Index(Int16* c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexsv((Int16*)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glIndexub")]
        public static 
        void Index(Byte c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexub((Byte)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current color index
        /// </summary>
        /// <param name="c">
        /// <para>
        /// Specifies the new value for the current color index.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glIndexubv")]
        public static 
        unsafe void Index(Byte* c)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexubv((Byte*)c);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Initialize the name stack
        /// </summary>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glInitNames")]
        public static 
        void InitNames()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInitNames();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Simultaneously specify and enable several interleaved arrays
        /// </summary>
        /// <param name="format">
        /// <para>
        /// Specifies the type of array to enable. Symbolic constants GL_V2F, GL_V3F, GL_C4UB_V2F, GL_C4UB_V3F, GL_C3F_V3F, GL_N3F_V3F, GL_C4F_N3F_V3F, GL_T2F_V3F, GL_T4F_V4F, GL_T2F_C4UB_V3F, GL_T2F_C3F_V3F, GL_T2F_N3F_V3F, GL_T2F_C4F_N3F_V3F, and GL_T4F_C4F_N3F_V4F are accepted.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the offset in bytes between each aggregate array element.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays<T2>(InterleavedArrayFormat format, Int32 stride, [In, Out] ref T2 pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glInterleavedArrays((InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Simultaneously specify and enable several interleaved arrays
        /// </summary>
        /// <param name="format">
        /// <para>
        /// Specifies the type of array to enable. Symbolic constants GL_V2F, GL_V3F, GL_C4UB_V2F, GL_C4UB_V3F, GL_C3F_V3F, GL_N3F_V3F, GL_C4F_N3F_V3F, GL_T2F_V3F, GL_T4F_V4F, GL_T2F_C4UB_V3F, GL_T2F_C3F_V3F, GL_T2F_N3F_V3F, GL_T2F_C4F_N3F_V3F, and GL_T4F_C4F_N3F_V4F are accepted.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the offset in bytes between each aggregate array element.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays<T2>(InterleavedArrayFormat format, Int32 stride, [In, Out] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glInterleavedArrays((InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Simultaneously specify and enable several interleaved arrays
        /// </summary>
        /// <param name="format">
        /// <para>
        /// Specifies the type of array to enable. Symbolic constants GL_V2F, GL_V3F, GL_C4UB_V2F, GL_C4UB_V3F, GL_C3F_V3F, GL_N3F_V3F, GL_C4F_N3F_V3F, GL_T2F_V3F, GL_T4F_V4F, GL_T2F_C4UB_V3F, GL_T2F_C3F_V3F, GL_T2F_N3F_V3F, GL_T2F_C4F_N3F_V3F, and GL_T4F_C4F_N3F_V4F are accepted.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the offset in bytes between each aggregate array element.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays<T2>(InterleavedArrayFormat format, Int32 stride, [In, Out] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glInterleavedArrays((InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Simultaneously specify and enable several interleaved arrays
        /// </summary>
        /// <param name="format">
        /// <para>
        /// Specifies the type of array to enable. Symbolic constants GL_V2F, GL_V3F, GL_C4UB_V2F, GL_C4UB_V3F, GL_C3F_V3F, GL_N3F_V3F, GL_C4F_N3F_V3F, GL_T2F_V3F, GL_T4F_V4F, GL_T2F_C4UB_V3F, GL_T2F_C3F_V3F, GL_T2F_N3F_V3F, GL_T2F_C4F_N3F_V3F, and GL_T4F_C4F_N3F_V4F are accepted.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the offset in bytes between each aggregate array element.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays<T2>(InterleavedArrayFormat format, Int32 stride, [In, Out] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glInterleavedArrays((InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Simultaneously specify and enable several interleaved arrays
        /// </summary>
        /// <param name="format">
        /// <para>
        /// Specifies the type of array to enable. Symbolic constants GL_V2F, GL_V3F, GL_C4UB_V2F, GL_C4UB_V3F, GL_C3F_V3F, GL_N3F_V3F, GL_C4F_N3F_V3F, GL_T2F_V3F, GL_T4F_V4F, GL_T2F_C4UB_V3F, GL_T2F_C3F_V3F, GL_T2F_N3F_V3F, GL_T2F_C4F_N3F_V3F, and GL_T4F_C4F_N3F_V4F are accepted.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the offset in bytes between each aggregate array element.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays(InterleavedArrayFormat format, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInterleavedArrays((InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if a name corresponds to a buffer object
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specifies a value that may be the name of a buffer object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glIsBuffer")]
        public static 
        bool IsBuffer(Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsBuffer((UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if a name corresponds to a buffer object
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specifies a value that may be the name of a buffer object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glIsBuffer")]
        public static 
        bool IsBuffer(UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsBuffer((UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Test whether a capability is enabled
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glIsEnabled")]
        public static 
        bool IsEnabled(EnableCap cap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsEnabled((EnableCap)cap);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Test whether a capability is enabled
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glIsEnabledi")]
        public static 
        bool IsEnabled(IndexedEnableCap target, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsEnabledi((IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Test whether a capability is enabled
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glIsEnabledi")]
        public static 
        bool IsEnabled(IndexedEnableCap target, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsEnabledi((IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glIsFramebuffer")]
        public static 
        bool IsFramebuffer(Int32 framebuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsFramebuffer((UInt32)framebuffer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glIsFramebuffer")]
        public static 
        bool IsFramebuffer(UInt32 framebuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsFramebuffer((UInt32)framebuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if a name corresponds to a display list
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies a potential display list name.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIsList")]
        public static 
        bool IsList(Int32 list)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsList((UInt32)list);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if a name corresponds to a display list
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies a potential display list name.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glIsList")]
        public static 
        bool IsList(UInt32 list)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsList((UInt32)list);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glIsProgram")]
        public static 
        bool IsProgram(Int32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glIsProgram")]
        public static 
        bool IsProgram(UInt32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if a name corresponds to a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a query object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glIsQuery")]
        public static 
        bool IsQuery(Int32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsQuery((UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if a name corresponds to a query object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a query object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glIsQuery")]
        public static 
        bool IsQuery(UInt32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsQuery((UInt32)id);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glIsRenderbuffer")]
        public static 
        bool IsRenderbuffer(Int32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsRenderbuffer((UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glIsRenderbuffer")]
        public static 
        bool IsRenderbuffer(UInt32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsRenderbuffer((UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determines if a name corresponds to a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies a potential shader object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glIsShader")]
        public static 
        bool IsShader(Int32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsShader((UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determines if a name corresponds to a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies a potential shader object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glIsShader")]
        public static 
        bool IsShader(UInt32 shader)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsShader((UInt32)shader);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glIsSync")]
        public static 
        bool IsSync(IntPtr sync)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsSync((IntPtr)sync);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if a name corresponds to a texture
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies a value that may be the name of a texture.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glIsTexture")]
        public static 
        bool IsTexture(Int32 texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsTexture((UInt32)texture);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Determine if a name corresponds to a texture
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies a value that may be the name of a texture.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glIsTexture")]
        public static 
        bool IsTexture(UInt32 texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsTexture((UInt32)texture);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glIsVertexArray")]
        public static 
        bool IsVertexArray(Int32 array)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsVertexArray((UInt32)array);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbVertexArrayObject", Version = "3.0", EntryPoint = "glIsVertexArray")]
        public static 
        bool IsVertexArray(UInt32 array)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsVertexArray((UInt32)array);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set light source parameters
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light. The number of lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT , where i ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued light source parameter for light. GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter pname of light source light will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightf")]
        public static 
        void Light(LightName light, LightParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightf((LightName)light, (LightParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set light source parameters
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light. The number of lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT , where i ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued light source parameter for light. GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter pname of light source light will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightfv")]
        public static 
        unsafe void Light(LightName light, LightParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightfv((LightName)light, (LightParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set light source parameters
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light. The number of lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT , where i ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued light source parameter for light. GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter pname of light source light will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightfv")]
        public static 
        void Light(LightName light, LightParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glLightfv((LightName)light, (LightParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set light source parameters
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light. The number of lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT , where i ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued light source parameter for light. GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter pname of light source light will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLighti")]
        public static 
        void Light(LightName light, LightParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLighti((LightName)light, (LightParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set light source parameters
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light. The number of lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT , where i ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued light source parameter for light. GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter pname of light source light will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightiv")]
        public static 
        unsafe void Light(LightName light, LightParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightiv((LightName)light, (LightParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set light source parameters
        /// </summary>
        /// <param name="light">
        /// <para>
        /// Specifies a light. The number of lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHT , where i ranges from 0 to the value of GL_MAX_LIGHTS - 1.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued light source parameter for light. GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter pname of light source light will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightiv")]
        public static 
        void Light(LightName light, LightParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glLightiv((LightName)light, (LightParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the lighting model parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued lighting model parameter. GL_LIGHT_MODEL_LOCAL_VIEWER, GL_LIGHT_MODEL_COLOR_CONTROL, and GL_LIGHT_MODEL_TWO_SIDE are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that param will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightModelf")]
        public static 
        void LightModel(LightModelParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightModelf((LightModelParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the lighting model parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued lighting model parameter. GL_LIGHT_MODEL_LOCAL_VIEWER, GL_LIGHT_MODEL_COLOR_CONTROL, and GL_LIGHT_MODEL_TWO_SIDE are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that param will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightModelfv")]
        public static 
        unsafe void LightModel(LightModelParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightModelfv((LightModelParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the lighting model parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued lighting model parameter. GL_LIGHT_MODEL_LOCAL_VIEWER, GL_LIGHT_MODEL_COLOR_CONTROL, and GL_LIGHT_MODEL_TWO_SIDE are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that param will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightModelfv")]
        public static 
        void LightModel(LightModelParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glLightModelfv((LightModelParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the lighting model parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued lighting model parameter. GL_LIGHT_MODEL_LOCAL_VIEWER, GL_LIGHT_MODEL_COLOR_CONTROL, and GL_LIGHT_MODEL_TWO_SIDE are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that param will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightModeli")]
        public static 
        void LightModel(LightModelParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightModeli((LightModelParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the lighting model parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued lighting model parameter. GL_LIGHT_MODEL_LOCAL_VIEWER, GL_LIGHT_MODEL_COLOR_CONTROL, and GL_LIGHT_MODEL_TWO_SIDE are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that param will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightModeliv")]
        public static 
        unsafe void LightModel(LightModelParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightModeliv((LightModelParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the lighting model parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued lighting model parameter. GL_LIGHT_MODEL_LOCAL_VIEWER, GL_LIGHT_MODEL_COLOR_CONTROL, and GL_LIGHT_MODEL_TWO_SIDE are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that param will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLightModeliv")]
        public static 
        void LightModel(LightModelParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glLightModeliv((LightModelParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the line stipple pattern
        /// </summary>
        /// <param name="factor">
        /// <para>
        /// Specifies a multiplier for each bit in the line stipple pattern. If factor is 3, for example, each bit in the pattern is used three times before the next bit in the pattern is used. factor is clamped to the range [1, 256] and defaults to 1.
        /// </para>
        /// </param>
        /// <param name="pattern">
        /// <para>
        /// Specifies a 16-bit integer whose bit pattern determines which fragments of a line will be drawn when the line is rasterized. Bit zero is used first; the default pattern is all 1's.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLineStipple")]
        public static 
        void LineStipple(Int32 factor, Int16 pattern)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLineStipple((Int32)factor, (UInt16)pattern);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the line stipple pattern
        /// </summary>
        /// <param name="factor">
        /// <para>
        /// Specifies a multiplier for each bit in the line stipple pattern. If factor is 3, for example, each bit in the pattern is used three times before the next bit in the pattern is used. factor is clamped to the range [1, 256] and defaults to 1.
        /// </para>
        /// </param>
        /// <param name="pattern">
        /// <para>
        /// Specifies a 16-bit integer whose bit pattern determines which fragments of a line will be drawn when the line is rasterized. Bit zero is used first; the default pattern is all 1's.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLineStipple")]
        public static 
        void LineStipple(Int32 factor, UInt16 pattern)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLineStipple((Int32)factor, (UInt16)pattern);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the width of rasterized lines
        /// </summary>
        /// <param name="width">
        /// <para>
        /// Specifies the width of rasterized lines. The initial value is 1.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glLineWidth")]
        public static 
        void LineWidth(Single width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLineWidth((Single)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Links a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be linked.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glLinkProgram")]
        public static 
        void LinkProgram(Int32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLinkProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Links a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be linked.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glLinkProgram")]
        public static 
        void LinkProgram(UInt32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLinkProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the display-list base for glCallLists
        /// </summary>
        /// <param name="base">
        /// <para>
        /// Specifies an integer offset that will be added to glCallLists offsets to generate display-list names. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glListBase")]
        public static 
        void ListBase(Int32 @base)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glListBase((UInt32)@base);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the display-list base for glCallLists
        /// </summary>
        /// <param name="base">
        /// <para>
        /// Specifies an integer offset that will be added to glCallLists offsets to generate display-list names. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glListBase")]
        public static 
        void ListBase(UInt32 @base)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glListBase((UInt32)@base);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the identity matrix
        /// </summary>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadIdentity")]
        public static 
        void LoadIdentity()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLoadIdentity();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadMatrixd")]
        public static 
        unsafe void LoadMatrix(Double* m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLoadMatrixd((Double*)m);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadMatrixd")]
        public static 
        void LoadMatrix(Double[] m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* m_ptr = m)
                {
                    Delegates.glLoadMatrixd((Double*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadMatrixd")]
        public static 
        void LoadMatrix(ref Double m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* m_ptr = &m)
                {
                    Delegates.glLoadMatrixd((Double*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadMatrixf")]
        public static 
        void LoadMatrix(ref Single m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* m_ptr = &m)
                {
                    Delegates.glLoadMatrixf((Single*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadMatrixf")]
        public static 
        unsafe void LoadMatrix(Single* m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLoadMatrixf((Single*)m);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadMatrixf")]
        public static 
        void LoadMatrix(Single[] m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* m_ptr = m)
                {
                    Delegates.glLoadMatrixf((Single*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Load a name onto the name stack
        /// </summary>
        /// <param name="name">
        /// <para>
        /// Specifies a name that will replace the top value on the name stack.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadName")]
        public static 
        void LoadName(Int32 name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLoadName((UInt32)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Load a name onto the name stack
        /// </summary>
        /// <param name="name">
        /// <para>
        /// Specifies a name that will replace the top value on the name stack.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glLoadName")]
        public static 
        void LoadName(UInt32 name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLoadName((UInt32)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glLoadTransposeMatrixd")]
        public static 
        unsafe void LoadTransposeMatrix(Double* m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLoadTransposeMatrixd((Double*)m);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glLoadTransposeMatrixd")]
        public static 
        void LoadTransposeMatrix(Double[] m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* m_ptr = m)
                {
                    Delegates.glLoadTransposeMatrixd((Double*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glLoadTransposeMatrixd")]
        public static 
        void LoadTransposeMatrix(ref Double m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* m_ptr = &m)
                {
                    Delegates.glLoadTransposeMatrixd((Double*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glLoadTransposeMatrixf")]
        public static 
        void LoadTransposeMatrix(ref Single m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* m_ptr = &m)
                {
                    Delegates.glLoadTransposeMatrixf((Single*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glLoadTransposeMatrixf")]
        public static 
        unsafe void LoadTransposeMatrix(Single* m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLoadTransposeMatrixf((Single*)m);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replace the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Specifies a pointer to 16 consecutive values, which are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glLoadTransposeMatrixf")]
        public static 
        void LoadTransposeMatrix(Single[] m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* m_ptr = m)
                {
                    Delegates.glLoadTransposeMatrixf((Single*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a logical pixel operation for color index rendering
        /// </summary>
        /// <param name="opcode">
        /// <para>
        /// Specifies a symbolic constant that selects a logical operation. The following symbols are accepted: GL_CLEAR, GL_SET, GL_COPY, GL_COPY_INVERTED, GL_NOOP, GL_INVERT, GL_AND, GL_NAND, GL_OR, GL_NOR, GL_XOR, GL_EQUIV, GL_AND_REVERSE, GL_AND_INVERTED, GL_OR_REVERSE, and GL_OR_INVERTED. The initial value is GL_COPY.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glLogicOp")]
        public static 
        void LogicOp(LogicOp opcode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLogicOp((LogicOp)opcode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP1_INDEX, GL_MAP1_COLOR_4, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, and GL_MAP1_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord1, to u hat, the variable that is evaluated by the equations specified by this command.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of one control point and the beginning of the next one in the data structure referenced in points. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations.
        /// </para>
        /// </param>
        /// <param name="order">
        /// <para>
        /// Specifies the number of control points. Must be positive.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap1d")]
        public static 
        unsafe void Map1(MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, Double* points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMap1d((MapTarget)target, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP1_INDEX, GL_MAP1_COLOR_4, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, and GL_MAP1_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord1, to u hat, the variable that is evaluated by the equations specified by this command.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of one control point and the beginning of the next one in the data structure referenced in points. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations.
        /// </para>
        /// </param>
        /// <param name="order">
        /// <para>
        /// Specifies the number of control points. Must be positive.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap1d")]
        public static 
        void Map1(MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, Double[] points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* points_ptr = points)
                {
                    Delegates.glMap1d((MapTarget)target, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP1_INDEX, GL_MAP1_COLOR_4, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, and GL_MAP1_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord1, to u hat, the variable that is evaluated by the equations specified by this command.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of one control point and the beginning of the next one in the data structure referenced in points. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations.
        /// </para>
        /// </param>
        /// <param name="order">
        /// <para>
        /// Specifies the number of control points. Must be positive.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap1d")]
        public static 
        void Map1(MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, ref Double points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* points_ptr = &points)
                {
                    Delegates.glMap1d((MapTarget)target, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP1_INDEX, GL_MAP1_COLOR_4, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, and GL_MAP1_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord1, to u hat, the variable that is evaluated by the equations specified by this command.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of one control point and the beginning of the next one in the data structure referenced in points. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations.
        /// </para>
        /// </param>
        /// <param name="order">
        /// <para>
        /// Specifies the number of control points. Must be positive.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap1f")]
        public static 
        void Map1(MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, ref Single points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* points_ptr = &points)
                {
                    Delegates.glMap1f((MapTarget)target, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP1_INDEX, GL_MAP1_COLOR_4, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, and GL_MAP1_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord1, to u hat, the variable that is evaluated by the equations specified by this command.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of one control point and the beginning of the next one in the data structure referenced in points. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations.
        /// </para>
        /// </param>
        /// <param name="order">
        /// <para>
        /// Specifies the number of control points. Must be positive.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap1f")]
        public static 
        unsafe void Map1(MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, Single* points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMap1f((MapTarget)target, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP1_INDEX, GL_MAP1_COLOR_4, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, and GL_MAP1_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord1, to u hat, the variable that is evaluated by the equations specified by this command.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of one control point and the beginning of the next one in the data structure referenced in points. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations.
        /// </para>
        /// </param>
        /// <param name="order">
        /// <para>
        /// Specifies the number of control points. Must be positive.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap1f")]
        public static 
        void Map1(MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, Single[] points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* points_ptr = points)
                {
                    Delegates.glMap1f((MapTarget)target, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP2_VERTEX_3, GL_MAP2_VERTEX_4, GL_MAP2_INDEX, GL_MAP2_COLOR_4, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, and GL_MAP2_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to u hat, one of the two variables that are evaluated by the equations specified by this command. Initially, u1 is 0 and u2 is 1.
        /// </para>
        /// </param>
        /// <param name="ustride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { (i+1) j }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of ustride is 0.
        /// </para>
        /// </param>
        /// <param name="uorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to v hat, one of the two variables that are evaluated by the equations specified by this command. Initially, v1 is 0 and v2 is 1.
        /// </para>
        /// </param>
        /// <param name="vstride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { i (j+1) }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of vstride is 0.
        /// </para>
        /// </param>
        /// <param name="vorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap2d")]
        public static 
        unsafe void Map2(MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double* points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMap2d((MapTarget)target, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP2_VERTEX_3, GL_MAP2_VERTEX_4, GL_MAP2_INDEX, GL_MAP2_COLOR_4, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, and GL_MAP2_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to u hat, one of the two variables that are evaluated by the equations specified by this command. Initially, u1 is 0 and u2 is 1.
        /// </para>
        /// </param>
        /// <param name="ustride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { (i+1) j }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of ustride is 0.
        /// </para>
        /// </param>
        /// <param name="uorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to v hat, one of the two variables that are evaluated by the equations specified by this command. Initially, v1 is 0 and v2 is 1.
        /// </para>
        /// </param>
        /// <param name="vstride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { i (j+1) }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of vstride is 0.
        /// </para>
        /// </param>
        /// <param name="vorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap2d")]
        public static 
        void Map2(MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double[] points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* points_ptr = points)
                {
                    Delegates.glMap2d((MapTarget)target, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP2_VERTEX_3, GL_MAP2_VERTEX_4, GL_MAP2_INDEX, GL_MAP2_COLOR_4, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, and GL_MAP2_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to u hat, one of the two variables that are evaluated by the equations specified by this command. Initially, u1 is 0 and u2 is 1.
        /// </para>
        /// </param>
        /// <param name="ustride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { (i+1) j }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of ustride is 0.
        /// </para>
        /// </param>
        /// <param name="uorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to v hat, one of the two variables that are evaluated by the equations specified by this command. Initially, v1 is 0 and v2 is 1.
        /// </para>
        /// </param>
        /// <param name="vstride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { i (j+1) }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of vstride is 0.
        /// </para>
        /// </param>
        /// <param name="vorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap2d")]
        public static 
        void Map2(MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, ref Double points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* points_ptr = &points)
                {
                    Delegates.glMap2d((MapTarget)target, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP2_VERTEX_3, GL_MAP2_VERTEX_4, GL_MAP2_INDEX, GL_MAP2_COLOR_4, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, and GL_MAP2_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to u hat, one of the two variables that are evaluated by the equations specified by this command. Initially, u1 is 0 and u2 is 1.
        /// </para>
        /// </param>
        /// <param name="ustride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { (i+1) j }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of ustride is 0.
        /// </para>
        /// </param>
        /// <param name="uorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to v hat, one of the two variables that are evaluated by the equations specified by this command. Initially, v1 is 0 and v2 is 1.
        /// </para>
        /// </param>
        /// <param name="vstride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { i (j+1) }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of vstride is 0.
        /// </para>
        /// </param>
        /// <param name="vorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap2f")]
        public static 
        void Map2(MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, ref Single points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* points_ptr = &points)
                {
                    Delegates.glMap2f((MapTarget)target, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP2_VERTEX_3, GL_MAP2_VERTEX_4, GL_MAP2_INDEX, GL_MAP2_COLOR_4, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, and GL_MAP2_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to u hat, one of the two variables that are evaluated by the equations specified by this command. Initially, u1 is 0 and u2 is 1.
        /// </para>
        /// </param>
        /// <param name="ustride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { (i+1) j }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of ustride is 0.
        /// </para>
        /// </param>
        /// <param name="uorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to v hat, one of the two variables that are evaluated by the equations specified by this command. Initially, v1 is 0 and v2 is 1.
        /// </para>
        /// </param>
        /// <param name="vstride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { i (j+1) }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of vstride is 0.
        /// </para>
        /// </param>
        /// <param name="vorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap2f")]
        public static 
        unsafe void Map2(MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single* points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMap2f((MapTarget)target, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a two-dimensional evaluator
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the kind of values that are generated by the evaluator. Symbolic constants GL_MAP2_VERTEX_3, GL_MAP2_VERTEX_4, GL_MAP2_INDEX, GL_MAP2_COLOR_4, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, and GL_MAP2_TEXTURE_COORD_4 are accepted.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to u hat, one of the two variables that are evaluated by the equations specified by this command. Initially, u1 is 0 and u2 is 1.
        /// </para>
        /// </param>
        /// <param name="ustride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { (i+1) j }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of ustride is 0.
        /// </para>
        /// </param>
        /// <param name="uorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify a linear mapping of , as presented to glEvalCoord2, to v hat, one of the two variables that are evaluated by the equations specified by this command. Initially, v1 is 0 and v2 is 1.
        /// </para>
        /// </param>
        /// <param name="vstride">
        /// <para>
        /// Specifies the number of floats or doubles between the beginning of control point R sub ij and the beginning of control point R sub { i (j+1) }, where and are the and control point indices, respectively. This allows control points to be embedded in arbitrary data structures. The only constraint is that the values for a particular control point must occupy contiguous memory locations. The initial value of vstride is 0.
        /// </para>
        /// </param>
        /// <param name="vorder">
        /// <para>
        /// Specifies the dimension of the control point array in the axis. Must be positive. The initial value is 1.
        /// </para>
        /// </param>
        /// <param name="points">
        /// <para>
        /// Specifies a pointer to the array of control points.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMap2f")]
        public static 
        void Map2(MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single[] points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* points_ptr = points)
                {
                    Delegates.glMap2f((MapTarget)target, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Map a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target buffer object being mapped. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.
        /// </para>
        /// </param>
        /// <param name="access">
        /// <para>
        /// Specifies the access policy, indicating whether it will be possible to read from, write to, or both read from and write to the buffer object's mapped data store. The symbolic constant must be GL_READ_ONLY, GL_WRITE_ONLY, or GL_READ_WRITE.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glMapBuffer")]
        public static 
        unsafe IntPtr MapBuffer(BufferTarget target, BufferAccess access)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glMapBuffer((BufferTarget)target, (BufferAccess)access);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbMapBufferRange", Version = "3.0", EntryPoint = "glMapBufferRange")]
        public static 
        unsafe IntPtr MapBufferRange(BufferTarget target, IntPtr offset, IntPtr length, BufferAccessMask access)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glMapBufferRange((BufferTarget)target, (IntPtr)offset, (IntPtr)length, (BufferAccessMask)access);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one- or two-dimensional mesh
        /// </summary>
        /// <param name="un">
        /// <para>
        /// Specifies the number of partitions in the grid range interval [u1, u2]. Must be positive.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify the mappings for integer grid domain values i = 0 and i = un.
        /// </para>
        /// </param>
        /// <param name="vn">
        /// <para>
        /// Specifies the number of partitions in the grid range interval [v1, v2] (glMapGrid2 only).
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify the mappings for integer grid domain values j = 0 and j = vn (glMapGrid2 only).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMapGrid1d")]
        public static 
        void MapGrid1(Int32 un, Double u1, Double u2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMapGrid1d((Int32)un, (Double)u1, (Double)u2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one- or two-dimensional mesh
        /// </summary>
        /// <param name="un">
        /// <para>
        /// Specifies the number of partitions in the grid range interval [u1, u2]. Must be positive.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify the mappings for integer grid domain values i = 0 and i = un.
        /// </para>
        /// </param>
        /// <param name="vn">
        /// <para>
        /// Specifies the number of partitions in the grid range interval [v1, v2] (glMapGrid2 only).
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify the mappings for integer grid domain values j = 0 and j = vn (glMapGrid2 only).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMapGrid1f")]
        public static 
        void MapGrid1(Int32 un, Single u1, Single u2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMapGrid1f((Int32)un, (Single)u1, (Single)u2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one- or two-dimensional mesh
        /// </summary>
        /// <param name="un">
        /// <para>
        /// Specifies the number of partitions in the grid range interval [u1, u2]. Must be positive.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify the mappings for integer grid domain values i = 0 and i = un.
        /// </para>
        /// </param>
        /// <param name="vn">
        /// <para>
        /// Specifies the number of partitions in the grid range interval [v1, v2] (glMapGrid2 only).
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify the mappings for integer grid domain values j = 0 and j = vn (glMapGrid2 only).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMapGrid2d")]
        public static 
        void MapGrid2(Int32 un, Double u1, Double u2, Int32 vn, Double v1, Double v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMapGrid2d((Int32)un, (Double)u1, (Double)u2, (Int32)vn, (Double)v1, (Double)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a one- or two-dimensional mesh
        /// </summary>
        /// <param name="un">
        /// <para>
        /// Specifies the number of partitions in the grid range interval [u1, u2]. Must be positive.
        /// </para>
        /// </param>
        /// <param name="u1">
        /// <para>
        /// Specify the mappings for integer grid domain values i = 0 and i = un.
        /// </para>
        /// </param>
        /// <param name="vn">
        /// <para>
        /// Specifies the number of partitions in the grid range interval [v1, v2] (glMapGrid2 only).
        /// </para>
        /// </param>
        /// <param name="v1">
        /// <para>
        /// Specify the mappings for integer grid domain values j = 0 and j = vn (glMapGrid2 only).
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMapGrid2f")]
        public static 
        void MapGrid2(Int32 un, Single u1, Single u2, Int32 vn, Single v1, Single v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMapGrid2f((Int32)un, (Single)u1, (Single)u2, (Int32)vn, (Single)v1, (Single)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify material parameters for the lighting model
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which face or faces are being updated. Must be one of GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be GL_SHININESS.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter GL_SHININESS will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMaterialf")]
        public static 
        void Material(MaterialFace face, MaterialParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMaterialf((MaterialFace)face, (MaterialParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify material parameters for the lighting model
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which face or faces are being updated. Must be one of GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be GL_SHININESS.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter GL_SHININESS will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMaterialfv")]
        public static 
        unsafe void Material(MaterialFace face, MaterialParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMaterialfv((MaterialFace)face, (MaterialParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify material parameters for the lighting model
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which face or faces are being updated. Must be one of GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be GL_SHININESS.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter GL_SHININESS will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMaterialfv")]
        public static 
        void Material(MaterialFace face, MaterialParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glMaterialfv((MaterialFace)face, (MaterialParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify material parameters for the lighting model
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which face or faces are being updated. Must be one of GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be GL_SHININESS.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter GL_SHININESS will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMateriali")]
        public static 
        void Material(MaterialFace face, MaterialParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMateriali((MaterialFace)face, (MaterialParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify material parameters for the lighting model
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which face or faces are being updated. Must be one of GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be GL_SHININESS.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter GL_SHININESS will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMaterialiv")]
        public static 
        unsafe void Material(MaterialFace face, MaterialParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMaterialiv((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify material parameters for the lighting model
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies which face or faces are being updated. Must be one of GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be GL_SHININESS.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that parameter GL_SHININESS will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMaterialiv")]
        public static 
        void Material(MaterialFace face, MaterialParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glMaterialiv((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify which matrix is the current matrix
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies which matrix stack is the target for subsequent matrix operations. Three values are accepted: GL_MODELVIEW, GL_PROJECTION, and GL_TEXTURE. The initial value is GL_MODELVIEW. Additionally, if the ARB_imaging extension is supported, GL_COLOR is also accepted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMatrixMode")]
        public static 
        void MatrixMode(MatrixMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMatrixMode((MatrixMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define minmax table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The minmax table whose parameters are to be set. Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The format of entries in the minmax table. Must be one of GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="sink">
        /// <para>
        /// If GL_TRUE, pixels will be consumed by the minmax process and no drawing or texture loading will take place. If GL_FALSE, pixels will proceed to the final conversion process after minmax.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glMinmax")]
        public static 
        void Minmax(Version12Deprecated target, PixelInternalFormat internalformat, bool sink)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMinmax((Version12Deprecated)target, (PixelInternalFormat)internalformat, (bool)sink);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSampleShading", Version = "1.2", EntryPoint = "glMinSampleShading")]
        public static 
        void MinSampleShading(Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMinSampleShading((Single)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="first">
        /// <para>
        /// Points to an array of starting indices in the enabled arrays.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the number of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
        public static 
        unsafe void MultiDrawArrays(BeginMode mode, [Out] Int32* first, [Out] Int32* count, Int32 primcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiDrawArrays((BeginMode)mode, (Int32*)first, (Int32*)count, (Int32)primcount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="first">
        /// <para>
        /// Points to an array of starting indices in the enabled arrays.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the number of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
        public static 
        void MultiDrawArrays(BeginMode mode, [Out] Int32[] first, [Out] Int32[] count, Int32 primcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* first_ptr = first)
                fixed (Int32* count_ptr = count)
                {
                    Delegates.glMultiDrawArrays((BeginMode)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="first">
        /// <para>
        /// Points to an array of starting indices in the enabled arrays.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the number of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
        public static 
        void MultiDrawArrays(BeginMode mode, [Out] out Int32 first, [Out] out Int32 count, Int32 primcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* first_ptr = &first)
                fixed (Int32* count_ptr = &count)
                {
                    Delegates.glMultiDrawArrays((BeginMode)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    first = *first_ptr;
                    count = *count_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements<T3>(BeginMode mode, Int32* count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements<T3>(BeginMode mode, Int32* count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements<T3>(BeginMode mode, Int32* count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements<T3>(BeginMode mode, Int32* count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements(BeginMode mode, Int32* count, DrawElementsType type, IntPtr indices, Int32 primcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(BeginMode mode, Int32[] count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(BeginMode mode, Int32[] count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(BeginMode mode, Int32[] count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(BeginMode mode, Int32[] count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements(BeginMode mode, Int32[] count, DrawElementsType type, IntPtr indices, Int32 primcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                {
                    Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements(BeginMode mode, ref Int32 count, DrawElementsType type, IntPtr indices, Int32 primcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                {
                    Delegates.glMultiDrawElements((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32* count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount, Int32* basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32* count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount, Int32* basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32* count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount, Int32* basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32* count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount, Int32* basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex(ArbDrawElementsBaseVertex mode, Int32* count, DrawElementsType type, IntPtr indices, Int32 primcount, Int32* basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32*)basevertex);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32[] count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount, Int32[] basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                fixed (Int32* basevertex_ptr = basevertex)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32[] count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount, Int32[] basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                fixed (Int32* basevertex_ptr = basevertex)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32[] count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount, Int32[] basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                fixed (Int32* basevertex_ptr = basevertex)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, Int32[] count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount, Int32[] basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                fixed (Int32* basevertex_ptr = basevertex)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex(ArbDrawElementsBaseVertex mode, Int32[] count, DrawElementsType type, IntPtr indices, Int32 primcount, Int32[] basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                fixed (Int32* basevertex_ptr = basevertex)
                {
                    Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32*)basevertex_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, ref Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount, ref Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                fixed (Int32* basevertex_ptr = &basevertex)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, ref Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount, ref Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                fixed (Int32* basevertex_ptr = &basevertex)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, ref Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount, ref Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                fixed (Int32* basevertex_ptr = &basevertex)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(ArbDrawElementsBaseVertex mode, ref Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount, ref Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                fixed (Int32* basevertex_ptr = &basevertex)
                {
                    GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbDrawElementsBaseVertex", Version = "1.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex(ArbDrawElementsBaseVertex mode, ref Int32 count, DrawElementsType type, IntPtr indices, Int32 primcount, ref Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                fixed (Int32* basevertex_ptr = &basevertex)
                {
                    Delegates.glMultiDrawElementsBaseVertex((ArbDrawElementsBaseVertex)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32*)basevertex_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord1d")]
        public static 
        void MultiTexCoord1(TextureUnit target, Double s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1d((TextureUnit)target, (Double)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord1dv")]
        public static 
        unsafe void MultiTexCoord1(TextureUnit target, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1dv((TextureUnit)target, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord1f")]
        public static 
        void MultiTexCoord1(TextureUnit target, Single s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1f((TextureUnit)target, (Single)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord1fv")]
        public static 
        unsafe void MultiTexCoord1(TextureUnit target, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1fv((TextureUnit)target, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord1i")]
        public static 
        void MultiTexCoord1(TextureUnit target, Int32 s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1i((TextureUnit)target, (Int32)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord1iv")]
        public static 
        unsafe void MultiTexCoord1(TextureUnit target, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1iv((TextureUnit)target, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord1s")]
        public static 
        void MultiTexCoord1(TextureUnit target, Int16 s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1s((TextureUnit)target, (Int16)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord1sv")]
        public static 
        unsafe void MultiTexCoord1(TextureUnit target, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1sv((TextureUnit)target, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2d")]
        public static 
        void MultiTexCoord2(TextureUnit target, Double s, Double t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2d((TextureUnit)target, (Double)s, (Double)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
        public static 
        unsafe void MultiTexCoord2(TextureUnit target, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2dv((TextureUnit)target, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
        public static 
        void MultiTexCoord2(TextureUnit target, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glMultiTexCoord2dv((TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
        public static 
        void MultiTexCoord2(TextureUnit target, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord2dv((TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2f")]
        public static 
        void MultiTexCoord2(TextureUnit target, Single s, Single t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2f((TextureUnit)target, (Single)s, (Single)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
        public static 
        void MultiTexCoord2(TextureUnit target, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord2fv((TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
        public static 
        unsafe void MultiTexCoord2(TextureUnit target, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2fv((TextureUnit)target, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
        public static 
        void MultiTexCoord2(TextureUnit target, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glMultiTexCoord2fv((TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2i")]
        public static 
        void MultiTexCoord2(TextureUnit target, Int32 s, Int32 t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2i((TextureUnit)target, (Int32)s, (Int32)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
        public static 
        unsafe void MultiTexCoord2(TextureUnit target, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2iv((TextureUnit)target, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
        public static 
        void MultiTexCoord2(TextureUnit target, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glMultiTexCoord2iv((TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
        public static 
        void MultiTexCoord2(TextureUnit target, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord2iv((TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2s")]
        public static 
        void MultiTexCoord2(TextureUnit target, Int16 s, Int16 t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2s((TextureUnit)target, (Int16)s, (Int16)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
        public static 
        unsafe void MultiTexCoord2(TextureUnit target, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2sv((TextureUnit)target, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
        public static 
        void MultiTexCoord2(TextureUnit target, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glMultiTexCoord2sv((TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
        public static 
        void MultiTexCoord2(TextureUnit target, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord2sv((TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3d")]
        public static 
        void MultiTexCoord3(TextureUnit target, Double s, Double t, Double r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3d((TextureUnit)target, (Double)s, (Double)t, (Double)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
        public static 
        unsafe void MultiTexCoord3(TextureUnit target, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3dv((TextureUnit)target, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
        public static 
        void MultiTexCoord3(TextureUnit target, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glMultiTexCoord3dv((TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
        public static 
        void MultiTexCoord3(TextureUnit target, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord3dv((TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3f")]
        public static 
        void MultiTexCoord3(TextureUnit target, Single s, Single t, Single r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3f((TextureUnit)target, (Single)s, (Single)t, (Single)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
        public static 
        void MultiTexCoord3(TextureUnit target, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord3fv((TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
        public static 
        unsafe void MultiTexCoord3(TextureUnit target, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3fv((TextureUnit)target, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
        public static 
        void MultiTexCoord3(TextureUnit target, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glMultiTexCoord3fv((TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3i")]
        public static 
        void MultiTexCoord3(TextureUnit target, Int32 s, Int32 t, Int32 r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3i((TextureUnit)target, (Int32)s, (Int32)t, (Int32)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
        public static 
        unsafe void MultiTexCoord3(TextureUnit target, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3iv((TextureUnit)target, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
        public static 
        void MultiTexCoord3(TextureUnit target, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glMultiTexCoord3iv((TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
        public static 
        void MultiTexCoord3(TextureUnit target, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord3iv((TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3s")]
        public static 
        void MultiTexCoord3(TextureUnit target, Int16 s, Int16 t, Int16 r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3s((TextureUnit)target, (Int16)s, (Int16)t, (Int16)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
        public static 
        unsafe void MultiTexCoord3(TextureUnit target, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3sv((TextureUnit)target, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
        public static 
        void MultiTexCoord3(TextureUnit target, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glMultiTexCoord3sv((TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
        public static 
        void MultiTexCoord3(TextureUnit target, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord3sv((TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4d")]
        public static 
        void MultiTexCoord4(TextureUnit target, Double s, Double t, Double r, Double q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4d((TextureUnit)target, (Double)s, (Double)t, (Double)r, (Double)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
        public static 
        unsafe void MultiTexCoord4(TextureUnit target, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4dv((TextureUnit)target, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
        public static 
        void MultiTexCoord4(TextureUnit target, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glMultiTexCoord4dv((TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
        public static 
        void MultiTexCoord4(TextureUnit target, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord4dv((TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4f")]
        public static 
        void MultiTexCoord4(TextureUnit target, Single s, Single t, Single r, Single q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4f((TextureUnit)target, (Single)s, (Single)t, (Single)r, (Single)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
        public static 
        void MultiTexCoord4(TextureUnit target, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord4fv((TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
        public static 
        unsafe void MultiTexCoord4(TextureUnit target, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4fv((TextureUnit)target, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
        public static 
        void MultiTexCoord4(TextureUnit target, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glMultiTexCoord4fv((TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4i")]
        public static 
        void MultiTexCoord4(TextureUnit target, Int32 s, Int32 t, Int32 r, Int32 q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4i((TextureUnit)target, (Int32)s, (Int32)t, (Int32)r, (Int32)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
        public static 
        unsafe void MultiTexCoord4(TextureUnit target, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4iv((TextureUnit)target, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
        public static 
        void MultiTexCoord4(TextureUnit target, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glMultiTexCoord4iv((TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
        public static 
        void MultiTexCoord4(TextureUnit target, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord4iv((TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4s")]
        public static 
        void MultiTexCoord4(TextureUnit target, Int16 s, Int16 t, Int16 r, Int16 q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4s((TextureUnit)target, (Int16)s, (Int16)t, (Int16)r, (Int16)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
        public static 
        unsafe void MultiTexCoord4(TextureUnit target, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4sv((TextureUnit)target, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
        public static 
        void MultiTexCoord4(TextureUnit target, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glMultiTexCoord4sv((TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the texture unit whose coordinates should be modified. The number of texture units is implementation dependent, but must be at least two. Symbolic constant must be one of GL_TEXTURE, where i ranges from 0 to GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value.
        /// </para>
        /// </param>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates for target texture unit. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
        public static 
        void MultiTexCoord4(TextureUnit target, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord4sv((TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMultMatrixd")]
        public static 
        unsafe void MultMatrix(Double* m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultMatrixd((Double*)m);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMultMatrixd")]
        public static 
        void MultMatrix(Double[] m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* m_ptr = m)
                {
                    Delegates.glMultMatrixd((Double*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMultMatrixd")]
        public static 
        void MultMatrix(ref Double m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* m_ptr = &m)
                {
                    Delegates.glMultMatrixd((Double*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMultMatrixf")]
        public static 
        void MultMatrix(ref Single m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* m_ptr = &m)
                {
                    Delegates.glMultMatrixf((Single*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMultMatrixf")]
        public static 
        unsafe void MultMatrix(Single* m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultMatrixf((Single*)m);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 column-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glMultMatrixf")]
        public static 
        void MultMatrix(Single[] m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* m_ptr = m)
                {
                    Delegates.glMultMatrixf((Single*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultTransposeMatrixd")]
        public static 
        unsafe void MultTransposeMatrix(Double* m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultTransposeMatrixd((Double*)m);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultTransposeMatrixd")]
        public static 
        void MultTransposeMatrix(Double[] m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* m_ptr = m)
                {
                    Delegates.glMultTransposeMatrixd((Double*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultTransposeMatrixd")]
        public static 
        void MultTransposeMatrix(ref Double m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* m_ptr = &m)
                {
                    Delegates.glMultTransposeMatrixd((Double*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultTransposeMatrixf")]
        public static 
        void MultTransposeMatrix(ref Single m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* m_ptr = &m)
                {
                    Delegates.glMultTransposeMatrixf((Single*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultTransposeMatrixf")]
        public static 
        unsafe void MultTransposeMatrix(Single* m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultTransposeMatrixf((Single*)m);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with the specified row-major ordered matrix
        /// </summary>
        /// <param name="m">
        /// <para>
        /// Points to 16 consecutive values that are used as the elements of a 4 times 4 row-major matrix.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13Deprecated", Version = "1.3", EntryPoint = "glMultTransposeMatrixf")]
        public static 
        void MultTransposeMatrix(Single[] m)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* m_ptr = m)
                {
                    Delegates.glMultTransposeMatrixf((Single*)m_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Create or replace a display list
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies the display-list name.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies the compilation mode, which can be GL_COMPILE or GL_COMPILE_AND_EXECUTE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNewList")]
        public static 
        void NewList(Int32 list, ListMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNewList((UInt32)list, (ListMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Create or replace a display list
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies the display-list name.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies the compilation mode, which can be GL_COMPILE or GL_COMPILE_AND_EXECUTE.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNewList")]
        public static 
        void NewList(UInt32 list, ListMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNewList((UInt32)list, (ListMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3b")]
        public static 
        void Normal3(Byte nx, Byte ny, Byte nz)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3b((SByte)nx, (SByte)ny, (SByte)nz);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3b")]
        public static 
        void Normal3(SByte nx, SByte ny, SByte nz)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3b((SByte)nx, (SByte)ny, (SByte)nz);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3bv")]
        public static 
        unsafe void Normal3(Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3bv((SByte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3bv")]
        public static 
        void Normal3(Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glNormal3bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3bv")]
        public static 
        void Normal3(ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glNormal3bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3bv")]
        public static 
        void Normal3(ref SByte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = &v)
                {
                    Delegates.glNormal3bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3bv")]
        public static 
        unsafe void Normal3(SByte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3bv((SByte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3bv")]
        public static 
        void Normal3(SByte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = v)
                {
                    Delegates.glNormal3bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3d")]
        public static 
        void Normal3(Double nx, Double ny, Double nz)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3d((Double)nx, (Double)ny, (Double)nz);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3dv")]
        public static 
        unsafe void Normal3(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3dv")]
        public static 
        void Normal3(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glNormal3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3dv")]
        public static 
        void Normal3(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glNormal3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3f")]
        public static 
        void Normal3(Single nx, Single ny, Single nz)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3f((Single)nx, (Single)ny, (Single)nz);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3fv")]
        public static 
        void Normal3(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glNormal3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3fv")]
        public static 
        unsafe void Normal3(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3fv")]
        public static 
        void Normal3(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glNormal3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3i")]
        public static 
        void Normal3(Int32 nx, Int32 ny, Int32 nz)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3i((Int32)nx, (Int32)ny, (Int32)nz);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3iv")]
        public static 
        unsafe void Normal3(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3iv")]
        public static 
        void Normal3(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glNormal3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3iv")]
        public static 
        void Normal3(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glNormal3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3s")]
        public static 
        void Normal3(Int16 nx, Int16 ny, Int16 nz)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3s((Int16)nx, (Int16)ny, (Int16)nz);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3sv")]
        public static 
        unsafe void Normal3(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormal3sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3sv")]
        public static 
        void Normal3(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glNormal3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current normal vector
        /// </summary>
        /// <param name="nx">
        /// <para>
        /// Specify the , , and coordinates of the new current normal. The initial value of the current normal is the unit vector, (0, 0, 1).
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glNormal3sv")]
        public static 
        void Normal3(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glNormal3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] ref T2 pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glNormalPointer((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glNormalPointer((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glNormalPointer((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glNormalPointer((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer(NormalPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormalPointer((NormalPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix with an orthographic matrix
        /// </summary>
        /// <param name="left">
        /// <para>
        /// Specify the coordinates for the left and right vertical clipping planes.
        /// </para>
        /// </param>
        /// <param name="bottom">
        /// <para>
        /// Specify the coordinates for the bottom and top horizontal clipping planes.
        /// </para>
        /// </param>
        /// <param name="nearVal">
        /// <para>
        /// Specify the distances to the nearer and farther depth clipping planes. These values are negative if the plane is to be behind the viewer.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glOrtho")]
        public static 
        void Ortho(Double left, Double right, Double bottom, Double top, Double zNear, Double zFar)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glOrtho((Double)left, (Double)right, (Double)bottom, (Double)top, (Double)zNear, (Double)zFar);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Place a marker in the feedback buffer
        /// </summary>
        /// <param name="token">
        /// <para>
        /// Specifies a marker value to be placed in the feedback buffer following a GL_PASS_THROUGH_TOKEN.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPassThrough")]
        public static 
        void PassThrough(Single token)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPassThrough((Single)token);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapfv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, ref Single values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = &values)
                {
                    Delegates.glPixelMapfv((PixelMap)map, (Int32)mapsize, (Single*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapfv")]
        public static 
        unsafe void PixelMap(PixelMap map, Int32 mapsize, Single* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapfv((PixelMap)map, (Int32)mapsize, (Single*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapfv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, Single[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = values)
                {
                    Delegates.glPixelMapfv((PixelMap)map, (Int32)mapsize, (Single*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        unsafe void PixelMap(PixelMap map, Int32 mapsize, Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapuiv((PixelMap)map, (Int32)mapsize, (UInt32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, Int32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = values)
                {
                    Delegates.glPixelMapuiv((PixelMap)map, (Int32)mapsize, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, ref Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glPixelMapuiv((PixelMap)map, (Int32)mapsize, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, ref UInt32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* values_ptr = &values)
                {
                    Delegates.glPixelMapuiv((PixelMap)map, (Int32)mapsize, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        unsafe void PixelMap(PixelMap map, Int32 mapsize, UInt32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapuiv((PixelMap)map, (Int32)mapsize, (UInt32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, UInt32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* values_ptr = values)
                {
                    Delegates.glPixelMapuiv((PixelMap)map, (Int32)mapsize, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        unsafe void PixelMap(PixelMap map, Int32 mapsize, Int16* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapusv((PixelMap)map, (Int32)mapsize, (UInt16*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, Int16[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* values_ptr = values)
                {
                    Delegates.glPixelMapusv((PixelMap)map, (Int32)mapsize, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, ref Int16 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* values_ptr = &values)
                {
                    Delegates.glPixelMapusv((PixelMap)map, (Int32)mapsize, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, ref UInt16 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* values_ptr = &values)
                {
                    Delegates.glPixelMapusv((PixelMap)map, (Int32)mapsize, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        unsafe void PixelMap(PixelMap map, Int32 mapsize, UInt16* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapusv((PixelMap)map, (Int32)mapsize, (UInt16*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set up pixel transfer maps
        /// </summary>
        /// <param name="map">
        /// <para>
        /// Specifies a symbolic map name. Must be one of the following: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or GL_PIXEL_MAP_A_TO_A.
        /// </para>
        /// </param>
        /// <param name="mapsize">
        /// <para>
        /// Specifies the size of the map being defined.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies an array of mapsize values.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        void PixelMap(PixelMap map, Int32 mapsize, UInt16[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* values_ptr = values)
                {
                    Delegates.glPixelMapusv((PixelMap)map, (Int32)mapsize, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set pixel storage modes
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the parameter to be set. Six values affect the packing of pixel data into memory: GL_PACK_SWAP_BYTES, GL_PACK_LSB_FIRST, GL_PACK_ROW_LENGTH, GL_PACK_IMAGE_HEIGHT, GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS, GL_PACK_SKIP_IMAGES, and GL_PACK_ALIGNMENT. Six more affect the unpacking of pixel data from memory: GL_UNPACK_SWAP_BYTES, GL_UNPACK_LSB_FIRST, GL_UNPACK_ROW_LENGTH, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, GL_UNPACK_SKIP_IMAGES, and GL_UNPACK_ALIGNMENT.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname is set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glPixelStoref")]
        public static 
        void PixelStore(PixelStoreParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelStoref((PixelStoreParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set pixel storage modes
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the parameter to be set. Six values affect the packing of pixel data into memory: GL_PACK_SWAP_BYTES, GL_PACK_LSB_FIRST, GL_PACK_ROW_LENGTH, GL_PACK_IMAGE_HEIGHT, GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS, GL_PACK_SKIP_IMAGES, and GL_PACK_ALIGNMENT. Six more affect the unpacking of pixel data from memory: GL_UNPACK_SWAP_BYTES, GL_UNPACK_LSB_FIRST, GL_UNPACK_ROW_LENGTH, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, GL_UNPACK_SKIP_IMAGES, and GL_UNPACK_ALIGNMENT.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname is set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glPixelStorei")]
        public static 
        void PixelStore(PixelStoreParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelStorei((PixelStoreParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set pixel transfer modes
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the pixel transfer parameter to be set. Must be one of the following: GL_MAP_COLOR, GL_MAP_STENCIL, GL_INDEX_SHIFT, GL_INDEX_OFFSET, GL_RED_SCALE, GL_RED_BIAS, GL_GREEN_SCALE, GL_GREEN_BIAS, GL_BLUE_SCALE, GL_BLUE_BIAS, GL_ALPHA_SCALE, GL_ALPHA_BIAS, GL_DEPTH_SCALE, or GL_DEPTH_BIAS.
        /// </para>
        /// <para>
        /// Additionally, if the ARB_imaging extension is supported, the following symbolic names are accepted: GL_POST_COLOR_MATRIX_RED_SCALE, GL_POST_COLOR_MATRIX_GREEN_SCALE, GL_POST_COLOR_MATRIX_BLUE_SCALE, GL_POST_COLOR_MATRIX_ALPHA_SCALE, GL_POST_COLOR_MATRIX_RED_BIAS, GL_POST_COLOR_MATRIX_GREEN_BIAS, GL_POST_COLOR_MATRIX_BLUE_BIAS, GL_POST_COLOR_MATRIX_ALPHA_BIAS, GL_POST_CONVOLUTION_RED_SCALE, GL_POST_CONVOLUTION_GREEN_SCALE, GL_POST_CONVOLUTION_BLUE_SCALE, GL_POST_CONVOLUTION_ALPHA_SCALE, GL_POST_CONVOLUTION_RED_BIAS, GL_POST_CONVOLUTION_GREEN_BIAS, GL_POST_CONVOLUTION_BLUE_BIAS, and GL_POST_CONVOLUTION_ALPHA_BIAS.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname is set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelTransferf")]
        public static 
        void PixelTransfer(PixelTransferParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelTransferf((PixelTransferParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set pixel transfer modes
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the pixel transfer parameter to be set. Must be one of the following: GL_MAP_COLOR, GL_MAP_STENCIL, GL_INDEX_SHIFT, GL_INDEX_OFFSET, GL_RED_SCALE, GL_RED_BIAS, GL_GREEN_SCALE, GL_GREEN_BIAS, GL_BLUE_SCALE, GL_BLUE_BIAS, GL_ALPHA_SCALE, GL_ALPHA_BIAS, GL_DEPTH_SCALE, or GL_DEPTH_BIAS.
        /// </para>
        /// <para>
        /// Additionally, if the ARB_imaging extension is supported, the following symbolic names are accepted: GL_POST_COLOR_MATRIX_RED_SCALE, GL_POST_COLOR_MATRIX_GREEN_SCALE, GL_POST_COLOR_MATRIX_BLUE_SCALE, GL_POST_COLOR_MATRIX_ALPHA_SCALE, GL_POST_COLOR_MATRIX_RED_BIAS, GL_POST_COLOR_MATRIX_GREEN_BIAS, GL_POST_COLOR_MATRIX_BLUE_BIAS, GL_POST_COLOR_MATRIX_ALPHA_BIAS, GL_POST_CONVOLUTION_RED_SCALE, GL_POST_CONVOLUTION_GREEN_SCALE, GL_POST_CONVOLUTION_BLUE_SCALE, GL_POST_CONVOLUTION_ALPHA_SCALE, GL_POST_CONVOLUTION_RED_BIAS, GL_POST_CONVOLUTION_GREEN_BIAS, GL_POST_CONVOLUTION_BLUE_BIAS, and GL_POST_CONVOLUTION_ALPHA_BIAS.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname is set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelTransferi")]
        public static 
        void PixelTransfer(PixelTransferParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelTransferi((PixelTransferParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the pixel zoom factors
        /// </summary>
        /// <param name="xfactor">
        /// <para>
        /// Specify the and zoom factors for pixel write operations.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPixelZoom")]
        public static 
        void PixelZoom(Single xfactor, Single yfactor)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelZoom((Single)xfactor, (Single)yfactor);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glPointParameterf")]
        public static 
        void PointParameter(PointParameterName pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointParameterf((PointParameterName)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glPointParameterfv")]
        public static 
        unsafe void PointParameter(PointParameterName pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointParameterfv((PointParameterName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glPointParameterfv")]
        public static 
        void PointParameter(PointParameterName pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glPointParameterfv((PointParameterName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glPointParameteri")]
        public static 
        void PointParameter(PointParameterName pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointParameteri((PointParameterName)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glPointParameteriv")]
        public static 
        unsafe void PointParameter(PointParameterName pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointParameteriv((PointParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14", Version = "1.4", EntryPoint = "glPointParameteriv")]
        public static 
        void PointParameter(PointParameterName pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glPointParameteriv((PointParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the diameter of rasterized points
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the diameter of rasterized points. The initial value is 1.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glPointSize")]
        public static 
        void PointSize(Single size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointSize((Single)size);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Select a polygon rasterization mode
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies the polygons that mode applies to. Must be GL_FRONT for front-facing polygons, GL_BACK for back-facing polygons, or GL_FRONT_AND_BACK for front- and back-facing polygons.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies how polygons will be rasterized. Accepted values are GL_POINT, GL_LINE, and GL_FILL. The initial value is GL_FILL for both front- and back-facing polygons.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glPolygonMode")]
        public static 
        void PolygonMode(MaterialFace face, PolygonMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPolygonMode((MaterialFace)face, (PolygonMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the scale and units used to calculate depth values
        /// </summary>
        /// <param name="factor">
        /// <para>
        /// Specifies a scale factor that is used to create a variable depth offset for each polygon. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="units">
        /// <para>
        /// Is multiplied by an implementation-specific value to create a constant depth offset. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glPolygonOffset")]
        public static 
        void PolygonOffset(Single factor, Single units)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPolygonOffset((Single)factor, (Single)units);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the polygon stippling pattern
        /// </summary>
        /// <param name="pattern">
        /// <para>
        /// Specifies a pointer to a 32 times 32 stipple pattern that will be unpacked from memory in the same way that glDrawPixels unpacks pixels.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPolygonStipple")]
        public static 
        unsafe void PolygonStipple(Byte* mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPolygonStipple((Byte*)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the polygon stippling pattern
        /// </summary>
        /// <param name="pattern">
        /// <para>
        /// Specifies a pointer to a 32 times 32 stipple pattern that will be unpacked from memory in the same way that glDrawPixels unpacks pixels.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPolygonStipple")]
        public static 
        void PolygonStipple(Byte[] mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* mask_ptr = mask)
                {
                    Delegates.glPolygonStipple((Byte*)mask_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the polygon stippling pattern
        /// </summary>
        /// <param name="pattern">
        /// <para>
        /// Specifies a pointer to a 32 times 32 stipple pattern that will be unpacked from memory in the same way that glDrawPixels unpacks pixels.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPolygonStipple")]
        public static 
        void PolygonStipple(ref Byte mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* mask_ptr = &mask)
                {
                    Delegates.glPolygonStipple((Byte*)mask_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPopAttrib")]
        public static 
        void PopAttrib()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopAttrib();
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glPopClientAttrib")]
        public static 
        void PopClientAttrib()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopClientAttrib();
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPopMatrix")]
        public static 
        void PopMatrix()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopMatrix();
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPopName")]
        public static 
        void PopName()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopName();
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glPrimitiveRestartIndex")]
        public static 
        void PrimitiveRestartIndex(Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPrimitiveRestartIndex((UInt32)index);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glPrimitiveRestartIndex")]
        public static 
        void PrimitiveRestartIndex(UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPrimitiveRestartIndex((UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
        public static 
        unsafe void PrioritizeTextures(Int32 n, Int32* textures, Single* priorities)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPrioritizeTextures((Int32)n, (UInt32*)textures, (Single*)priorities);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
        public static 
        void PrioritizeTextures(Int32 n, Int32[] textures, Single[] priorities)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* textures_ptr = textures)
                fixed (Single* priorities_ptr = priorities)
                {
                    Delegates.glPrioritizeTextures((Int32)n, (UInt32*)textures_ptr, (Single*)priorities_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
        public static 
        void PrioritizeTextures(Int32 n, ref Int32 textures, ref Single priorities)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* textures_ptr = &textures)
                fixed (Single* priorities_ptr = &priorities)
                {
                    Delegates.glPrioritizeTextures((Int32)n, (UInt32*)textures_ptr, (Single*)priorities_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
        public static 
        void PrioritizeTextures(Int32 n, ref UInt32 textures, ref Single priorities)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* textures_ptr = &textures)
                fixed (Single* priorities_ptr = &priorities)
                {
                    Delegates.glPrioritizeTextures((Int32)n, (UInt32*)textures_ptr, (Single*)priorities_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
        public static 
        unsafe void PrioritizeTextures(Int32 n, UInt32* textures, Single* priorities)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPrioritizeTextures((Int32)n, (UInt32*)textures, (Single*)priorities);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
        public static 
        void PrioritizeTextures(Int32 n, UInt32[] textures, Single[] priorities)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* textures_ptr = textures)
                fixed (Single* priorities_ptr = priorities)
                {
                    Delegates.glPrioritizeTextures((Int32)n, (UInt32*)textures_ptr, (Single*)priorities_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version32", Version = "1.2", EntryPoint = "glProgramParameteri")]
        public static 
        void ProgramParameter(Int32 program, Version32 pname, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramParameteri((UInt32)program, (Version32)pname, (Int32)value);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version32", Version = "1.2", EntryPoint = "glProgramParameteri")]
        public static 
        void ProgramParameter(UInt32 program, Version32 pname, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramParameteri((UInt32)program, (Version32)pname, (Int32)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbProvokingVertex", Version = "1.2", EntryPoint = "glProvokingVertex")]
        public static 
        void ProvokingVertex(ArbProvokingVertex mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProvokingVertex((ArbProvokingVertex)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Push and pop the server attribute stack
        /// </summary>
        /// <param name="mask">
        /// <para>
        /// Specifies a mask that indicates which attributes to save. Values for mask are listed below.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPushAttrib")]
        public static 
        void PushAttrib(AttribMask mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushAttrib((AttribMask)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Push and pop the client attribute stack
        /// </summary>
        /// <param name="mask">
        /// <para>
        /// Specifies a mask that indicates which attributes to save. Values for mask are listed below.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glPushClientAttrib")]
        public static 
        void PushClientAttrib(ClientAttribMask mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushClientAttrib((ClientAttribMask)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Push and pop the current matrix stack
        /// </summary>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPushMatrix")]
        public static 
        void PushMatrix()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushMatrix();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Push and pop the name stack
        /// </summary>
        /// <param name="name">
        /// <para>
        /// Specifies a name that will be pushed onto the name stack.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPushName")]
        public static 
        void PushName(Int32 name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushName((UInt32)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Push and pop the name stack
        /// </summary>
        /// <param name="name">
        /// <para>
        /// Specifies a name that will be pushed onto the name stack.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glPushName")]
        public static 
        void PushName(UInt32 name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushName((UInt32)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2d")]
        public static 
        void RasterPos2(Double x, Double y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos2d((Double)x, (Double)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2dv")]
        public static 
        unsafe void RasterPos2(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos2dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2dv")]
        public static 
        void RasterPos2(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glRasterPos2dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2dv")]
        public static 
        void RasterPos2(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glRasterPos2dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2f")]
        public static 
        void RasterPos2(Single x, Single y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos2f((Single)x, (Single)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2fv")]
        public static 
        void RasterPos2(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glRasterPos2fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2fv")]
        public static 
        unsafe void RasterPos2(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos2fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2fv")]
        public static 
        void RasterPos2(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glRasterPos2fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2i")]
        public static 
        void RasterPos2(Int32 x, Int32 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos2i((Int32)x, (Int32)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2iv")]
        public static 
        unsafe void RasterPos2(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos2iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2iv")]
        public static 
        void RasterPos2(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glRasterPos2iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2iv")]
        public static 
        void RasterPos2(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glRasterPos2iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2s")]
        public static 
        void RasterPos2(Int16 x, Int16 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos2s((Int16)x, (Int16)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2sv")]
        public static 
        unsafe void RasterPos2(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos2sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2sv")]
        public static 
        void RasterPos2(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glRasterPos2sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos2sv")]
        public static 
        void RasterPos2(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glRasterPos2sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3d")]
        public static 
        void RasterPos3(Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos3d((Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3dv")]
        public static 
        unsafe void RasterPos3(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos3dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3dv")]
        public static 
        void RasterPos3(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glRasterPos3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3dv")]
        public static 
        void RasterPos3(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glRasterPos3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3f")]
        public static 
        void RasterPos3(Single x, Single y, Single z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos3f((Single)x, (Single)y, (Single)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3fv")]
        public static 
        void RasterPos3(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glRasterPos3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3fv")]
        public static 
        unsafe void RasterPos3(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos3fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3fv")]
        public static 
        void RasterPos3(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glRasterPos3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3i")]
        public static 
        void RasterPos3(Int32 x, Int32 y, Int32 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos3i((Int32)x, (Int32)y, (Int32)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3iv")]
        public static 
        unsafe void RasterPos3(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos3iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3iv")]
        public static 
        void RasterPos3(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glRasterPos3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3iv")]
        public static 
        void RasterPos3(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glRasterPos3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3s")]
        public static 
        void RasterPos3(Int16 x, Int16 y, Int16 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos3s((Int16)x, (Int16)y, (Int16)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3sv")]
        public static 
        unsafe void RasterPos3(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos3sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3sv")]
        public static 
        void RasterPos3(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glRasterPos3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos3sv")]
        public static 
        void RasterPos3(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glRasterPos3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4d")]
        public static 
        void RasterPos4(Double x, Double y, Double z, Double w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos4d((Double)x, (Double)y, (Double)z, (Double)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4dv")]
        public static 
        unsafe void RasterPos4(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos4dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4dv")]
        public static 
        void RasterPos4(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glRasterPos4dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4dv")]
        public static 
        void RasterPos4(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glRasterPos4dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4f")]
        public static 
        void RasterPos4(Single x, Single y, Single z, Single w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos4f((Single)x, (Single)y, (Single)z, (Single)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4fv")]
        public static 
        void RasterPos4(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glRasterPos4fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4fv")]
        public static 
        unsafe void RasterPos4(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos4fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4fv")]
        public static 
        void RasterPos4(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glRasterPos4fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4i")]
        public static 
        void RasterPos4(Int32 x, Int32 y, Int32 z, Int32 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos4i((Int32)x, (Int32)y, (Int32)z, (Int32)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4iv")]
        public static 
        unsafe void RasterPos4(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos4iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4iv")]
        public static 
        void RasterPos4(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glRasterPos4iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4iv")]
        public static 
        void RasterPos4(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glRasterPos4iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4s")]
        public static 
        void RasterPos4(Int16 x, Int16 y, Int16 z, Int16 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos4s((Int16)x, (Int16)y, (Int16)z, (Int16)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4sv")]
        public static 
        unsafe void RasterPos4(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRasterPos4sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4sv")]
        public static 
        void RasterPos4(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glRasterPos4sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , , and object coordinates (if present) for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRasterPos4sv")]
        public static 
        void RasterPos4(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glRasterPos4sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Select a color buffer source for pixels
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies a color buffer. Accepted values are GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, and GL_AUXi, where i is between 0 and the value of GL_AUX_BUFFERS minus 1.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glReadBuffer")]
        public static 
        void ReadBuffer(ReadBufferMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glReadBuffer((ReadBufferMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Read a block of pixels from the frame buffer
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the first pixel that is read from the frame buffer. This location is the lower left corner of a rectangular block of pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle. width and height of one correspond to a single pixel.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T6 pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glReadPixels((Int32)x, (Int32)y, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Read a block of pixels from the frame buffer
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the first pixel that is read from the frame buffer. This location is the lower left corner of a rectangular block of pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle. width and height of one correspond to a single pixel.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,,] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glReadPixels((Int32)x, (Int32)y, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Read a block of pixels from the frame buffer
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the first pixel that is read from the frame buffer. This location is the lower left corner of a rectangular block of pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle. width and height of one correspond to a single pixel.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glReadPixels((Int32)x, (Int32)y, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Read a block of pixels from the frame buffer
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the first pixel that is read from the frame buffer. This location is the lower left corner of a rectangular block of pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle. width and height of one correspond to a single pixel.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glReadPixels((Int32)x, (Int32)y, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Read a block of pixels from the frame buffer
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the first pixel that is read from the frame buffer. This location is the lower left corner of a rectangular block of pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify the dimensions of the pixel rectangle. width and height of one correspond to a single pixel.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, PixelFormat format, PixelType type, [Out] IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glReadPixels((Int32)x, (Int32)y, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectd")]
        public static 
        void Rect(Double x1, Double y1, Double x2, Double y2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRectd((Double)x1, (Double)y1, (Double)x2, (Double)y2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectdv")]
        public static 
        unsafe void Rect(Double* v1, Double* v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRectdv((Double*)v1, (Double*)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectdv")]
        public static 
        void Rect(Double[] v1, Double[] v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v1_ptr = v1)
                fixed (Double* v2_ptr = v2)
                {
                    Delegates.glRectdv((Double*)v1_ptr, (Double*)v2_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectdv")]
        public static 
        void Rect(ref Double v1, ref Double v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v1_ptr = &v1)
                fixed (Double* v2_ptr = &v2)
                {
                    Delegates.glRectdv((Double*)v1_ptr, (Double*)v2_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectf")]
        public static 
        void Rect(Single x1, Single y1, Single x2, Single y2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRectf((Single)x1, (Single)y1, (Single)x2, (Single)y2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectfv")]
        public static 
        void Rect(ref Single v1, ref Single v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v1_ptr = &v1)
                fixed (Single* v2_ptr = &v2)
                {
                    Delegates.glRectfv((Single*)v1_ptr, (Single*)v2_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectfv")]
        public static 
        unsafe void Rect(Single* v1, Single* v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRectfv((Single*)v1, (Single*)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectfv")]
        public static 
        void Rect(Single[] v1, Single[] v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v1_ptr = v1)
                fixed (Single* v2_ptr = v2)
                {
                    Delegates.glRectfv((Single*)v1_ptr, (Single*)v2_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRecti")]
        public static 
        void Rect(Int32 x1, Int32 y1, Int32 x2, Int32 y2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRecti((Int32)x1, (Int32)y1, (Int32)x2, (Int32)y2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectiv")]
        public static 
        unsafe void Rect(Int32* v1, Int32* v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRectiv((Int32*)v1, (Int32*)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectiv")]
        public static 
        void Rect(Int32[] v1, Int32[] v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v1_ptr = v1)
                fixed (Int32* v2_ptr = v2)
                {
                    Delegates.glRectiv((Int32*)v1_ptr, (Int32*)v2_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectiv")]
        public static 
        void Rect(ref Int32 v1, ref Int32 v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v1_ptr = &v1)
                fixed (Int32* v2_ptr = &v2)
                {
                    Delegates.glRectiv((Int32*)v1_ptr, (Int32*)v2_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRects")]
        public static 
        void Rects(Int16 x1, Int16 y1, Int16 x2, Int16 y2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRects((Int16)x1, (Int16)y1, (Int16)x2, (Int16)y2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectsv")]
        public static 
        unsafe void Rect(Int16* v1, Int16* v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRectsv((Int16*)v1, (Int16*)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectsv")]
        public static 
        void Rect(Int16[] v1, Int16[] v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v1_ptr = v1)
                fixed (Int16* v2_ptr = v2)
                {
                    Delegates.glRectsv((Int16*)v1_ptr, (Int16*)v2_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Draw a rectangle
        /// </summary>
        /// <param name="x1">
        /// <para>
        /// Specify one vertex of a rectangle.
        /// </para>
        /// </param>
        /// <param name="x2">
        /// <para>
        /// Specify the opposite vertex of the rectangle.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRectsv")]
        public static 
        void Rect(ref Int16 v1, ref Int16 v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v1_ptr = &v1)
                fixed (Int16* v2_ptr = &v2)
                {
                    Delegates.glRectsv((Int16*)v1_ptr, (Int16*)v2_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glRenderbufferStorage")]
        public static 
        void RenderbufferStorage(RenderbufferTarget target, RenderbufferStorage internalformat, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRenderbufferStorage((RenderbufferTarget)target, (RenderbufferStorage)internalformat, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbFramebufferObject", Version = "3.0", EntryPoint = "glRenderbufferStorageMultisample")]
        public static 
        void RenderbufferStorageMultisample(RenderbufferTarget target, Int32 samples, RenderbufferStorage internalformat, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRenderbufferStorageMultisample((RenderbufferTarget)target, (Int32)samples, (RenderbufferStorage)internalformat, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set rasterization mode
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies the rasterization mode. Three values are accepted: GL_RENDER, GL_SELECT, and GL_FEEDBACK. The initial value is GL_RENDER.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRenderMode")]
        public static 
        Int32 RenderMode(RenderingMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glRenderMode((RenderingMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Reset histogram table entries to zero
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glResetHistogram")]
        public static 
        void ResetHistogram(Version12Deprecated target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glResetHistogram((Version12Deprecated)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Reset minmax table entries to initial values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glResetMinmax")]
        public static 
        void ResetMinmax(Version12Deprecated target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glResetMinmax((Version12Deprecated)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix by a rotation matrix
        /// </summary>
        /// <param name="angle">
        /// <para>
        /// Specifies the angle of rotation, in degrees.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the x, y, and z coordinates of a vector, respectively.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRotated")]
        public static 
        void Rotate(Double angle, Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRotated((Double)angle, (Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix by a rotation matrix
        /// </summary>
        /// <param name="angle">
        /// <para>
        /// Specifies the angle of rotation, in degrees.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the x, y, and z coordinates of a vector, respectively.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glRotatef")]
        public static 
        void Rotate(Single angle, Single x, Single y, Single z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRotatef((Single)angle, (Single)x, (Single)y, (Single)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify multisample coverage parameters
        /// </summary>
        /// <param name="value">
        /// <para>
        /// Specify a single floating-point sample coverage value. The value is clamped to the range [0 ,1]. The initial value is 1.0.
        /// </para>
        /// </param>
        /// <param name="invert">
        /// <para>
        /// Specify a single boolean value representing if the coverage masks should be inverted. GL_TRUE and GL_FALSE are accepted. The initial value is GL_FALSE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version13", Version = "1.3", EntryPoint = "glSampleCoverage")]
        public static 
        void SampleCoverage(Single value, bool invert)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSampleCoverage((Single)value, (bool)invert);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glSampleMaski")]
        public static 
        void SampleMask(Int32 index, Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSampleMaski((UInt32)index, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glSampleMaski")]
        public static 
        void SampleMask(UInt32 index, UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSampleMaski((UInt32)index, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix by a general scaling matrix
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify scale factors along the x, y, and z axes, respectively.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glScaled")]
        public static 
        void Scale(Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScaled((Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix by a general scaling matrix
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify scale factors along the x, y, and z axes, respectively.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glScalef")]
        public static 
        void Scale(Single x, Single y, Single z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScalef((Single)x, (Single)y, (Single)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define the scissor box
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the lower left corner of the scissor box. Initially (0, 0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify the width and height of the scissor box. When a GL context is first attached to a window, width and height are set to the dimensions of that window.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glScissor")]
        public static 
        void Scissor(Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScissor((Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3b")]
        public static 
        void SecondaryColor3(SByte red, SByte green, SByte blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3b((SByte)red, (SByte)green, (SByte)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3bv")]
        public static 
        void SecondaryColor3(ref SByte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = &v)
                {
                    Delegates.glSecondaryColor3bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3bv")]
        public static 
        unsafe void SecondaryColor3(SByte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3bv((SByte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3bv")]
        public static 
        void SecondaryColor3(SByte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = v)
                {
                    Delegates.glSecondaryColor3bv((SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3d")]
        public static 
        void SecondaryColor3(Double red, Double green, Double blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3d((Double)red, (Double)green, (Double)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3dv")]
        public static 
        unsafe void SecondaryColor3(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3dv")]
        public static 
        void SecondaryColor3(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glSecondaryColor3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3dv")]
        public static 
        void SecondaryColor3(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glSecondaryColor3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3f")]
        public static 
        void SecondaryColor3(Single red, Single green, Single blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3f((Single)red, (Single)green, (Single)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3fv")]
        public static 
        void SecondaryColor3(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glSecondaryColor3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3fv")]
        public static 
        unsafe void SecondaryColor3(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3fv")]
        public static 
        void SecondaryColor3(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glSecondaryColor3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3i")]
        public static 
        void SecondaryColor3(Int32 red, Int32 green, Int32 blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3i((Int32)red, (Int32)green, (Int32)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3iv")]
        public static 
        unsafe void SecondaryColor3(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3iv")]
        public static 
        void SecondaryColor3(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glSecondaryColor3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3iv")]
        public static 
        void SecondaryColor3(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glSecondaryColor3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3s")]
        public static 
        void SecondaryColor3(Int16 red, Int16 green, Int16 blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3s((Int16)red, (Int16)green, (Int16)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3sv")]
        public static 
        unsafe void SecondaryColor3(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3sv")]
        public static 
        void SecondaryColor3(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glSecondaryColor3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3sv")]
        public static 
        void SecondaryColor3(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glSecondaryColor3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3ub")]
        public static 
        void SecondaryColor3(Byte red, Byte green, Byte blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3ub((Byte)red, (Byte)green, (Byte)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3ubv")]
        public static 
        unsafe void SecondaryColor3(Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3ubv((Byte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3ubv")]
        public static 
        void SecondaryColor3(Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glSecondaryColor3ubv((Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3ubv")]
        public static 
        void SecondaryColor3(ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glSecondaryColor3ubv((Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3ui")]
        public static 
        void SecondaryColor3(UInt32 red, UInt32 green, UInt32 blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3ui((UInt32)red, (UInt32)green, (UInt32)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3uiv")]
        public static 
        void SecondaryColor3(ref UInt32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = &v)
                {
                    Delegates.glSecondaryColor3uiv((UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3uiv")]
        public static 
        unsafe void SecondaryColor3(UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3uiv((UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3uiv")]
        public static 
        void SecondaryColor3(UInt32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = v)
                {
                    Delegates.glSecondaryColor3uiv((UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3us")]
        public static 
        void SecondaryColor3(UInt16 red, UInt16 green, UInt16 blue)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3us((UInt16)red, (UInt16)green, (UInt16)blue);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3usv")]
        public static 
        void SecondaryColor3(ref UInt16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = &v)
                {
                    Delegates.glSecondaryColor3usv((UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3usv")]
        public static 
        unsafe void SecondaryColor3(UInt16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColor3usv((UInt16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColor3usv")]
        public static 
        void SecondaryColor3(UInt16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = v)
                {
                    Delegates.glSecondaryColor3usv((UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] ref T3 pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glSecondaryColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[,,] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glSecondaryColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[,] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glSecondaryColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glSecondaryColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer(Int32 size, ColorPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColorPointer((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Establish a buffer for selection mode values
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the size of buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the selection data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        unsafe void SelectBuffer(Int32 size, [Out] Int32* buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSelectBuffer((Int32)size, (UInt32*)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Establish a buffer for selection mode values
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the size of buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the selection data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        void SelectBuffer(Int32 size, [Out] Int32[] buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* buffer_ptr = buffer)
                {
                    Delegates.glSelectBuffer((Int32)size, (UInt32*)buffer_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Establish a buffer for selection mode values
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the size of buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the selection data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        void SelectBuffer(Int32 size, [Out] out Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* buffer_ptr = &buffer)
                {
                    Delegates.glSelectBuffer((Int32)size, (UInt32*)buffer_ptr);
                    buffer = *buffer_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Establish a buffer for selection mode values
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the size of buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the selection data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        void SelectBuffer(Int32 size, [Out] out UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* buffer_ptr = &buffer)
                {
                    Delegates.glSelectBuffer((Int32)size, (UInt32*)buffer_ptr);
                    buffer = *buffer_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Establish a buffer for selection mode values
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the size of buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the selection data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        unsafe void SelectBuffer(Int32 size, [Out] UInt32* buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSelectBuffer((Int32)size, (UInt32*)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Establish a buffer for selection mode values
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the size of buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Returns the selection data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        void SelectBuffer(Int32 size, [Out] UInt32[] buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* buffer_ptr = buffer)
                {
                    Delegates.glSelectBuffer((Int32)size, (UInt32*)buffer_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T6,T7>(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T6 row, [In, Out] T7[,,] column)
            where T6 : struct
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            try
            {
                Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T6,T7>(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,,] row, [In, Out] T7[,,] column)
            where T6 : struct
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            try
            {
                Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T6,T7>(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,] row, [In, Out] T7[,,] column)
            where T6 : struct
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            try
            {
                Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T6,T7>(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[] row, [In, Out] T7[,,] column)
            where T6 : struct
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            try
            {
                Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T7>(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, [In, Out] ref T7 column)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            try
            {
                Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T7>(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, [In, Out] T7[,,] column)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            try
            {
                Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T7>(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, [In, Out] T7[,] column)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            try
            {
                Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T7>(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, [In, Out] T7[] column)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
            try
            {
                Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12Deprecated", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D(Version12Deprecated target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, IntPtr column)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSeparableFilter2D((Version12Deprecated)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Select flat or smooth shading
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies a symbolic value representing a shading technique. Accepted values are GL_FLAT and GL_SMOOTH. The initial value is GL_SMOOTH.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glShadeModel")]
        public static 
        void ShadeModel(ShadingModel mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glShadeModel((ShadingModel)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replaces the source code in a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the handle of the shader object whose source code is to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements in the string and length arrays.
        /// </para>
        /// </param>
        /// <param name="string">
        /// <para>
        /// Specifies an array of pointers to strings containing the source code to be loaded into the shader.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies an array of string lengths.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glShaderSource")]
        public static 
        unsafe void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32* length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glShaderSource((UInt32)shader, (Int32)count, (String[])@string, (Int32*)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replaces the source code in a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the handle of the shader object whose source code is to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements in the string and length arrays.
        /// </para>
        /// </param>
        /// <param name="string">
        /// <para>
        /// Specifies an array of pointers to strings containing the source code to be loaded into the shader.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies an array of string lengths.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glShaderSource")]
        public static 
        void ShaderSource(Int32 shader, Int32 count, String[] @string, ref Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glShaderSource((UInt32)shader, (Int32)count, (String[])@string, (Int32*)length_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replaces the source code in a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the handle of the shader object whose source code is to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements in the string and length arrays.
        /// </para>
        /// </param>
        /// <param name="string">
        /// <para>
        /// Specifies an array of pointers to strings containing the source code to be loaded into the shader.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies an array of string lengths.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glShaderSource")]
        public static 
        unsafe void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32* length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glShaderSource((UInt32)shader, (Int32)count, (String[])@string, (Int32*)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Replaces the source code in a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the handle of the shader object whose source code is to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements in the string and length arrays.
        /// </para>
        /// </param>
        /// <param name="string">
        /// <para>
        /// Specifies an array of pointers to strings containing the source code to be loaded into the shader.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies an array of string lengths.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glShaderSource")]
        public static 
        void ShaderSource(UInt32 shader, Int32 count, String[] @string, ref Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glShaderSource((UInt32)shader, (Int32)count, (String[])@string, (Int32*)length_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set front and back function and reference value for stencil testing
        /// </summary>
        /// <param name="func">
        /// <para>
        /// Specifies the test function. Eight symbolic constants are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS.
        /// </para>
        /// </param>
        /// <param name="ref">
        /// <para>
        /// Specifies the reference value for the stencil test. ref is clamped to the range [0, 2 sup n - 1], where is the number of bitplanes in the stencil buffer. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glStencilFunc")]
        public static 
        void StencilFunc(StencilFunction func, Int32 @ref, Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilFunc((StencilFunction)func, (Int32)@ref, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set front and back function and reference value for stencil testing
        /// </summary>
        /// <param name="func">
        /// <para>
        /// Specifies the test function. Eight symbolic constants are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS.
        /// </para>
        /// </param>
        /// <param name="ref">
        /// <para>
        /// Specifies the reference value for the stencil test. ref is clamped to the range [0, 2 sup n - 1], where is the number of bitplanes in the stencil buffer. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glStencilFunc")]
        public static 
        void StencilFunc(StencilFunction func, Int32 @ref, UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilFunc((StencilFunction)func, (Int32)@ref, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set front and/or back function and reference value for stencil testing
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="func">
        /// <para>
        /// Specifies the test function. Eight symbolic constants are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS.
        /// </para>
        /// </param>
        /// <param name="ref">
        /// <para>
        /// Specifies the reference value for the stencil test. ref is clamped to the range [0, 2 sup n - 1], where is the number of bitplanes in the stencil buffer. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glStencilFuncSeparate")]
        public static 
        void StencilFuncSeparate(StencilFace face, StencilFunction func, Int32 @ref, Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilFuncSeparate((StencilFace)face, (StencilFunction)func, (Int32)@ref, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set front and/or back function and reference value for stencil testing
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="func">
        /// <para>
        /// Specifies the test function. Eight symbolic constants are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS.
        /// </para>
        /// </param>
        /// <param name="ref">
        /// <para>
        /// Specifies the reference value for the stencil test. ref is clamped to the range [0, 2 sup n - 1], where is the number of bitplanes in the stencil buffer. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glStencilFuncSeparate")]
        public static 
        void StencilFuncSeparate(StencilFace face, StencilFunction func, Int32 @ref, UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilFuncSeparate((StencilFace)face, (StencilFunction)func, (Int32)@ref, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the front and back writing of individual bits in the stencil planes
        /// </summary>
        /// <param name="mask">
        /// <para>
        /// Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all 1's.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glStencilMask")]
        public static 
        void StencilMask(Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilMask((UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the front and back writing of individual bits in the stencil planes
        /// </summary>
        /// <param name="mask">
        /// <para>
        /// Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all 1's.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glStencilMask")]
        public static 
        void StencilMask(UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilMask((UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the front and/or back writing of individual bits in the stencil planes
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether the front and/or back stencil writemask is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all 1's.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glStencilMaskSeparate")]
        public static 
        void StencilMaskSeparate(StencilFace face, Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilMaskSeparate((StencilFace)face, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the front and/or back writing of individual bits in the stencil planes
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether the front and/or back stencil writemask is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all 1's.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glStencilMaskSeparate")]
        public static 
        void StencilMaskSeparate(StencilFace face, UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilMaskSeparate((StencilFace)face, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set front and back stencil test actions
        /// </summary>
        /// <param name="sfail">
        /// <para>
        /// Specifies the action to take when the stencil test fails. Eight symbolic constants are accepted: GL_KEEP, GL_ZERO, GL_REPLACE, GL_INCR, GL_INCR_WRAP, GL_DECR, GL_DECR_WRAP, and GL_INVERT. The initial value is GL_KEEP.
        /// </para>
        /// </param>
        /// <param name="dpfail">
        /// <para>
        /// Specifies the stencil action when the stencil test passes, but the depth test fails. dpfail accepts the same symbolic constants as sfail. The initial value is GL_KEEP.
        /// </para>
        /// </param>
        /// <param name="dppass">
        /// <para>
        /// Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled. dppass accepts the same symbolic constants as sfail. The initial value is GL_KEEP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glStencilOp")]
        public static 
        void StencilOp(StencilOp fail, StencilOp zfail, StencilOp zpass)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilOp((StencilOp)fail, (StencilOp)zfail, (StencilOp)zpass);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set front and/or back stencil test actions
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid: GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK.
        /// </para>
        /// </param>
        /// <param name="sfail">
        /// <para>
        /// Specifies the action to take when the stencil test fails. Eight symbolic constants are accepted: GL_KEEP, GL_ZERO, GL_REPLACE, GL_INCR, GL_INCR_WRAP, GL_DECR, GL_DECR_WRAP, and GL_INVERT. The initial value is GL_KEEP.
        /// </para>
        /// </param>
        /// <param name="dpfail">
        /// <para>
        /// Specifies the stencil action when the stencil test passes, but the depth test fails. dpfail accepts the same symbolic constants as sfail. The initial value is GL_KEEP.
        /// </para>
        /// </param>
        /// <param name="dppass">
        /// <para>
        /// Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled. dppass accepts the same symbolic constants as sfail. The initial value is GL_KEEP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glStencilOpSeparate")]
        public static 
        void StencilOpSeparate(StencilFace face, StencilOp sfail, StencilOp dpfail, StencilOp dppass)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilOpSeparate((StencilFace)face, (StencilOp)sfail, (StencilOp)dpfail, (StencilOp)dppass);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glTexBuffer")]
        public static 
        void TexBuffer(TextureBufferTarget target, SizedInternalFormat internalformat, Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexBuffer((TextureBufferTarget)target, (SizedInternalFormat)internalformat, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version31", Version = "3.1", EntryPoint = "glTexBuffer")]
        public static 
        void TexBuffer(TextureBufferTarget target, SizedInternalFormat internalformat, UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexBuffer((TextureBufferTarget)target, (SizedInternalFormat)internalformat, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord1d")]
        public static 
        void TexCoord1(Double s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord1d((Double)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord1dv")]
        public static 
        unsafe void TexCoord1(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord1dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord1f")]
        public static 
        void TexCoord1(Single s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord1f((Single)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord1fv")]
        public static 
        unsafe void TexCoord1(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord1fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord1i")]
        public static 
        void TexCoord1(Int32 s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord1i((Int32)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord1iv")]
        public static 
        unsafe void TexCoord1(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord1iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord1s")]
        public static 
        void TexCoord1(Int16 s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord1s((Int16)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord1sv")]
        public static 
        unsafe void TexCoord1(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord1sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2d")]
        public static 
        void TexCoord2(Double s, Double t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord2d((Double)s, (Double)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2dv")]
        public static 
        unsafe void TexCoord2(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord2dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2dv")]
        public static 
        void TexCoord2(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glTexCoord2dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2dv")]
        public static 
        void TexCoord2(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glTexCoord2dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2f")]
        public static 
        void TexCoord2(Single s, Single t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord2f((Single)s, (Single)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2fv")]
        public static 
        void TexCoord2(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glTexCoord2fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2fv")]
        public static 
        unsafe void TexCoord2(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord2fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2fv")]
        public static 
        void TexCoord2(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glTexCoord2fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2i")]
        public static 
        void TexCoord2(Int32 s, Int32 t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord2i((Int32)s, (Int32)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2iv")]
        public static 
        unsafe void TexCoord2(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord2iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2iv")]
        public static 
        void TexCoord2(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glTexCoord2iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2iv")]
        public static 
        void TexCoord2(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glTexCoord2iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2s")]
        public static 
        void TexCoord2(Int16 s, Int16 t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord2s((Int16)s, (Int16)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2sv")]
        public static 
        unsafe void TexCoord2(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord2sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2sv")]
        public static 
        void TexCoord2(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glTexCoord2sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord2sv")]
        public static 
        void TexCoord2(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glTexCoord2sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3d")]
        public static 
        void TexCoord3(Double s, Double t, Double r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord3d((Double)s, (Double)t, (Double)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3dv")]
        public static 
        unsafe void TexCoord3(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord3dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3dv")]
        public static 
        void TexCoord3(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glTexCoord3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3dv")]
        public static 
        void TexCoord3(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glTexCoord3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3f")]
        public static 
        void TexCoord3(Single s, Single t, Single r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord3f((Single)s, (Single)t, (Single)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3fv")]
        public static 
        void TexCoord3(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glTexCoord3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3fv")]
        public static 
        unsafe void TexCoord3(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord3fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3fv")]
        public static 
        void TexCoord3(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glTexCoord3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3i")]
        public static 
        void TexCoord3(Int32 s, Int32 t, Int32 r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord3i((Int32)s, (Int32)t, (Int32)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3iv")]
        public static 
        unsafe void TexCoord3(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord3iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3iv")]
        public static 
        void TexCoord3(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glTexCoord3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3iv")]
        public static 
        void TexCoord3(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glTexCoord3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3s")]
        public static 
        void TexCoord3(Int16 s, Int16 t, Int16 r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord3s((Int16)s, (Int16)t, (Int16)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3sv")]
        public static 
        unsafe void TexCoord3(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord3sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3sv")]
        public static 
        void TexCoord3(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glTexCoord3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord3sv")]
        public static 
        void TexCoord3(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glTexCoord3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4d")]
        public static 
        void TexCoord4(Double s, Double t, Double r, Double q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord4d((Double)s, (Double)t, (Double)r, (Double)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4dv")]
        public static 
        unsafe void TexCoord4(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord4dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4dv")]
        public static 
        void TexCoord4(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glTexCoord4dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4dv")]
        public static 
        void TexCoord4(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glTexCoord4dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4f")]
        public static 
        void TexCoord4(Single s, Single t, Single r, Single q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord4f((Single)s, (Single)t, (Single)r, (Single)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4fv")]
        public static 
        void TexCoord4(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glTexCoord4fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4fv")]
        public static 
        unsafe void TexCoord4(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord4fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4fv")]
        public static 
        void TexCoord4(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glTexCoord4fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4i")]
        public static 
        void TexCoord4(Int32 s, Int32 t, Int32 r, Int32 q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord4i((Int32)s, (Int32)t, (Int32)r, (Int32)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4iv")]
        public static 
        unsafe void TexCoord4(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord4iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4iv")]
        public static 
        void TexCoord4(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glTexCoord4iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4iv")]
        public static 
        void TexCoord4(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glTexCoord4iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4s")]
        public static 
        void TexCoord4(Int16 s, Int16 t, Int16 r, Int16 q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord4s((Int16)s, (Int16)t, (Int16)r, (Int16)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4sv")]
        public static 
        unsafe void TexCoord4(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoord4sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4sv")]
        public static 
        void TexCoord4(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glTexCoord4sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the current texture coordinates
        /// </summary>
        /// <param name="s">
        /// <para>
        /// Specify s, t, r, and q texture coordinates. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexCoord4sv")]
        public static 
        void TexCoord4(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glTexCoord4sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer<T3>(Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] ref T3 pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glTexCoordPointer((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer<T3>(Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T3[,,] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glTexCoordPointer((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer<T3>(Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T3[,] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glTexCoordPointer((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer<T3>(Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T3[] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glTexCoordPointer((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer(Int32 size, TexCoordPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordPointer((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture environment parameter. May be either GL_TEXTURE_ENV_MODE, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single symbolic constant, one of GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE, GL_SUBTRACT, GL_COMBINE, GL_TEXTURE, GL_CONSTANT, GL_PRIMARY_COLOR, GL_PREVIOUS, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the GL_RGB_SCALE or GL_ALPHA_SCALE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexEnvf")]
        public static 
        void TexEnv(TextureEnvTarget target, TextureEnvParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexEnvf((TextureEnvTarget)target, (TextureEnvParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture environment parameter. May be either GL_TEXTURE_ENV_MODE, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single symbolic constant, one of GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE, GL_SUBTRACT, GL_COMBINE, GL_TEXTURE, GL_CONSTANT, GL_PRIMARY_COLOR, GL_PREVIOUS, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the GL_RGB_SCALE or GL_ALPHA_SCALE.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexEnvfv")]
        public static 
        unsafe void TexEnv(TextureEnvTarget target, TextureEnvParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexEnvfv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture environment parameter. May be either GL_TEXTURE_ENV_MODE, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single symbolic constant, one of GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE, GL_SUBTRACT, GL_COMBINE, GL_TEXTURE, GL_CONSTANT, GL_PRIMARY_COLOR, GL_PREVIOUS, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the GL_RGB_SCALE or GL_ALPHA_SCALE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexEnvfv")]
        public static 
        void TexEnv(TextureEnvTarget target, TextureEnvParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glTexEnvfv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture environment parameter. May be either GL_TEXTURE_ENV_MODE, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single symbolic constant, one of GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE, GL_SUBTRACT, GL_COMBINE, GL_TEXTURE, GL_CONSTANT, GL_PRIMARY_COLOR, GL_PREVIOUS, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the GL_RGB_SCALE or GL_ALPHA_SCALE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexEnvi")]
        public static 
        void TexEnv(TextureEnvTarget target, TextureEnvParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexEnvi((TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture environment parameter. May be either GL_TEXTURE_ENV_MODE, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single symbolic constant, one of GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE, GL_SUBTRACT, GL_COMBINE, GL_TEXTURE, GL_CONSTANT, GL_PRIMARY_COLOR, GL_PREVIOUS, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the GL_RGB_SCALE or GL_ALPHA_SCALE.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexEnviv")]
        public static 
        unsafe void TexEnv(TextureEnvTarget target, TextureEnvParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexEnviv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture environment parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL or GL_POINT_SPRITE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture environment parameter. May be either GL_TEXTURE_ENV_MODE, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single symbolic constant, one of GL_ADD, GL_ADD_SIGNED, GL_INTERPOLATE, GL_MODULATE, GL_DECAL, GL_BLEND, GL_REPLACE, GL_SUBTRACT, GL_COMBINE, GL_TEXTURE, GL_CONSTANT, GL_PRIMARY_COLOR, GL_PREVIOUS, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the GL_RGB_SCALE or GL_ALPHA_SCALE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexEnviv")]
        public static 
        void TexEnv(TextureEnvTarget target, TextureEnvParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glTexEnviv((TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGend")]
        public static 
        void TexGend(TextureCoordName coord, TextureGenParameter pname, Double param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGend((TextureCoordName)coord, (TextureGenParameter)pname, (Double)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGendv")]
        public static 
        unsafe void TexGen(TextureCoordName coord, TextureGenParameter pname, Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGendv((TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGendv")]
        public static 
        void TexGen(TextureCoordName coord, TextureGenParameter pname, Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glTexGendv((TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGendv")]
        public static 
        void TexGen(TextureCoordName coord, TextureGenParameter pname, ref Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glTexGendv((TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGenf")]
        public static 
        void TexGen(TextureCoordName coord, TextureGenParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGenf((TextureCoordName)coord, (TextureGenParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGenfv")]
        public static 
        unsafe void TexGen(TextureCoordName coord, TextureGenParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGenfv((TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGenfv")]
        public static 
        void TexGen(TextureCoordName coord, TextureGenParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glTexGenfv((TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGeni")]
        public static 
        void TexGen(TextureCoordName coord, TextureGenParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGeni((TextureCoordName)coord, (TextureGenParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGeniv")]
        public static 
        unsafe void TexGen(TextureCoordName coord, TextureGenParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGeniv((TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Control the generation of texture coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specifies a texture coordinate. Must be one of GL_S, GL_T, GL_R, or GL_Q.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the texture-coordinate generation function. Must be GL_TEXTURE_GEN_MODE.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies a single-valued texture generation parameter, one of GL_OBJECT_LINEAR, GL_EYE_LINEAR, GL_SPHERE_MAP, GL_NORMAL_MAP, or GL_REFLECTION_MAP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTexGeniv")]
        public static 
        void TexGen(TextureCoordName coord, TextureGenParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glTexGeniv((TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T7 pixels)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T7[,,] pixels)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T7[,] pixels)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D<T7>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T7[] pixels)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage1D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T8 pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[,,] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[,] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D<T8>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support texture images that are at least 64 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage2D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glTexImage2DMultisample")]
        public static 
        void TexImage2DMultisample(ArbTextureMultisample target, Int32 samples, Int32 internalformat, Int32 width, Int32 height, bool fixedsamplelocations)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage2DMultisample((ArbTextureMultisample)target, (Int32)samples, (Int32)internalformat, (Int32)width, (Int32)height, (bool)fixedsamplelocations);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D<T9>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T9 pixels)
            where T9 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D<T9>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,,] pixels)
            where T9 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D<T9>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,] pixels)
            where T9 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D<T9>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[] pixels)
            where T9 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage3D((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbTextureMultisample", Version = "1.2", EntryPoint = "glTexImage3DMultisample")]
        public static 
        void TexImage3DMultisample(ArbTextureMultisample target, Int32 samples, Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage3DMultisample((ArbTextureMultisample)target, (Int32)samples, (Int32)internalformat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedsamplelocations);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture, which must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_PRIORITY, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, or GL_GENERATE_MIPMAP.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexParameterf")]
        public static 
        void TexParameter(TextureTarget target, TextureParameterName pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameterf((TextureTarget)target, (TextureParameterName)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture, which must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_PRIORITY, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, or GL_GENERATE_MIPMAP.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexParameterfv")]
        public static 
        unsafe void TexParameter(TextureTarget target, TextureParameterName pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameterfv((TextureTarget)target, (TextureParameterName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture, which must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_PRIORITY, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, or GL_GENERATE_MIPMAP.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexParameterfv")]
        public static 
        void TexParameter(TextureTarget target, TextureParameterName pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glTexParameterfv((TextureTarget)target, (TextureParameterName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture, which must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_PRIORITY, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, or GL_GENERATE_MIPMAP.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexParameteri")]
        public static 
        void TexParameter(TextureTarget target, TextureParameterName pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameteri((TextureTarget)target, (TextureParameterName)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glTexParameterIiv")]
        public static 
        unsafe void TexParameterI(TextureTarget target, TextureParameterName pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameterIiv((TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glTexParameterIiv")]
        public static 
        void TexParameterI(TextureTarget target, TextureParameterName pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glTexParameterIiv((TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glTexParameterIiv")]
        public static 
        void TexParameterI(TextureTarget target, TextureParameterName pname, ref Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glTexParameterIiv((TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
        public static 
        void TexParameterI(TextureTarget target, TextureParameterName pname, ref UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glTexParameterIuiv((TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
        public static 
        unsafe void TexParameterI(TextureTarget target, TextureParameterName pname, UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameterIuiv((TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
        public static 
        void TexParameterI(TextureTarget target, TextureParameterName pname, UInt32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = @params)
                {
                    Delegates.glTexParameterIuiv((TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture, which must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_PRIORITY, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, or GL_GENERATE_MIPMAP.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexParameteriv")]
        public static 
        unsafe void TexParameter(TextureTarget target, TextureParameterName pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameteriv((TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set texture parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture, which must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_PRIORITY, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, or GL_GENERATE_MIPMAP.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glTexParameteriv")]
        public static 
        void TexParameter(TextureTarget target, TextureParameterName pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glTexParameteriv((TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T6 pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T6[,,] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T6[,] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T6[] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexSubImage1D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T8 pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T8[,,] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T8[,] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T8[] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexSubImage2D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] ref T10 pixels)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T10[,,] pixels)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T10[,] pixels)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T10[] pixels)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version12", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexSubImage3D((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
        public static 
        void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, TransformFeedbackMode bufferMode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTransformFeedbackVaryings((UInt32)program, (Int32)count, (String[])varyings, (TransformFeedbackMode)bufferMode);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
        public static 
        void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, TransformFeedbackMode bufferMode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTransformFeedbackVaryings((UInt32)program, (Int32)count, (String[])varyings, (TransformFeedbackMode)bufferMode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix by a translation matrix
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the x, y, and z coordinates of a translation vector.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTranslated")]
        public static 
        void Translate(Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTranslated((Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Multiply the current matrix by a translation matrix
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the x, y, and z coordinates of a translation vector.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glTranslatef")]
        public static 
        void Translate(Single x, Single y, Single z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTranslatef((Single)x, (Single)y, (Single)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform1f")]
        public static 
        void Uniform1(Int32 location, Single v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform1f((Int32)location, (Single)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform1fv")]
        public static 
        void Uniform1(Int32 location, Int32 count, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniform1fv((Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform1fv")]
        public static 
        unsafe void Uniform1(Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform1fv((Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform1fv")]
        public static 
        void Uniform1(Int32 location, Int32 count, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniform1fv((Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform1i")]
        public static 
        void Uniform1(Int32 location, Int32 v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform1i((Int32)location, (Int32)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform1iv")]
        public static 
        unsafe void Uniform1(Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform1iv((Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform1iv")]
        public static 
        void Uniform1(Int32 location, Int32 count, Int32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = value)
                {
                    Delegates.glUniform1iv((Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform1iv")]
        public static 
        void Uniform1(Int32 location, Int32 count, ref Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = &value)
                {
                    Delegates.glUniform1iv((Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform1ui")]
        public static 
        void Uniform1(Int32 location, UInt32 v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform1ui((Int32)location, (UInt32)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform1uiv")]
        public static 
        void Uniform1(Int32 location, Int32 count, ref UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = &value)
                {
                    Delegates.glUniform1uiv((Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform1uiv")]
        public static 
        unsafe void Uniform1(Int32 location, Int32 count, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform1uiv((Int32)location, (Int32)count, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform1uiv")]
        public static 
        void Uniform1(Int32 location, Int32 count, UInt32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = value)
                {
                    Delegates.glUniform1uiv((Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform2f")]
        public static 
        void Uniform2(Int32 location, Single v0, Single v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform2f((Int32)location, (Single)v0, (Single)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform2fv")]
        public static 
        void Uniform2(Int32 location, Int32 count, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniform2fv((Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform2fv")]
        public static 
        unsafe void Uniform2(Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform2fv((Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform2fv")]
        public static 
        void Uniform2(Int32 location, Int32 count, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniform2fv((Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform2i")]
        public static 
        void Uniform2(Int32 location, Int32 v0, Int32 v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform2i((Int32)location, (Int32)v0, (Int32)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform2iv")]
        public static 
        unsafe void Uniform2(Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform2iv((Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform2iv")]
        public static 
        void Uniform2(Int32 location, Int32 count, Int32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = value)
                {
                    Delegates.glUniform2iv((Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform2ui")]
        public static 
        void Uniform2(Int32 location, UInt32 v0, UInt32 v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform2ui((Int32)location, (UInt32)v0, (UInt32)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform2uiv")]
        public static 
        void Uniform2(Int32 location, Int32 count, ref UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = &value)
                {
                    Delegates.glUniform2uiv((Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform2uiv")]
        public static 
        unsafe void Uniform2(Int32 location, Int32 count, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform2uiv((Int32)location, (Int32)count, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform2uiv")]
        public static 
        void Uniform2(Int32 location, Int32 count, UInt32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = value)
                {
                    Delegates.glUniform2uiv((Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform3f")]
        public static 
        void Uniform3(Int32 location, Single v0, Single v1, Single v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform3f((Int32)location, (Single)v0, (Single)v1, (Single)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform3fv")]
        public static 
        void Uniform3(Int32 location, Int32 count, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniform3fv((Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform3fv")]
        public static 
        unsafe void Uniform3(Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform3fv((Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform3fv")]
        public static 
        void Uniform3(Int32 location, Int32 count, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniform3fv((Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform3i")]
        public static 
        void Uniform3(Int32 location, Int32 v0, Int32 v1, Int32 v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform3i((Int32)location, (Int32)v0, (Int32)v1, (Int32)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform3iv")]
        public static 
        unsafe void Uniform3(Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform3iv((Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform3iv")]
        public static 
        void Uniform3(Int32 location, Int32 count, Int32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = value)
                {
                    Delegates.glUniform3iv((Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform3iv")]
        public static 
        void Uniform3(Int32 location, Int32 count, ref Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = &value)
                {
                    Delegates.glUniform3iv((Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform3ui")]
        public static 
        void Uniform3(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform3ui((Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform3uiv")]
        public static 
        void Uniform3(Int32 location, Int32 count, ref UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = &value)
                {
                    Delegates.glUniform3uiv((Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform3uiv")]
        public static 
        unsafe void Uniform3(Int32 location, Int32 count, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform3uiv((Int32)location, (Int32)count, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform3uiv")]
        public static 
        void Uniform3(Int32 location, Int32 count, UInt32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = value)
                {
                    Delegates.glUniform3uiv((Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform4f")]
        public static 
        void Uniform4(Int32 location, Single v0, Single v1, Single v2, Single v3)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform4f((Int32)location, (Single)v0, (Single)v1, (Single)v2, (Single)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform4fv")]
        public static 
        void Uniform4(Int32 location, Int32 count, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniform4fv((Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform4fv")]
        public static 
        unsafe void Uniform4(Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform4fv((Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform4fv")]
        public static 
        void Uniform4(Int32 location, Int32 count, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniform4fv((Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform4i")]
        public static 
        void Uniform4(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform4i((Int32)location, (Int32)v0, (Int32)v1, (Int32)v2, (Int32)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform4iv")]
        public static 
        unsafe void Uniform4(Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform4iv((Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform4iv")]
        public static 
        void Uniform4(Int32 location, Int32 count, Int32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = value)
                {
                    Delegates.glUniform4iv((Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniform4iv")]
        public static 
        void Uniform4(Int32 location, Int32 count, ref Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = &value)
                {
                    Delegates.glUniform4iv((Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform4ui")]
        public static 
        void Uniform4(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform4ui((Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2, (UInt32)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform4uiv")]
        public static 
        void Uniform4(Int32 location, Int32 count, ref UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = &value)
                {
                    Delegates.glUniform4uiv((Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform4uiv")]
        public static 
        unsafe void Uniform4(Int32 location, Int32 count, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform4uiv((Int32)location, (Int32)count, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glUniform4uiv")]
        public static 
        void Uniform4(Int32 location, Int32 count, UInt32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = value)
                {
                    Delegates.glUniform4uiv((Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glUniformBlockBinding")]
        public static 
        void UniformBlockBinding(Int32 program, Int32 uniformBlockIndex, Int32 uniformBlockBinding)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformBlockBinding((UInt32)program, (UInt32)uniformBlockIndex, (UInt32)uniformBlockBinding);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbUniformBufferObject", Version = "2.0", EntryPoint = "glUniformBlockBinding")]
        public static 
        void UniformBlockBinding(UInt32 program, UInt32 uniformBlockIndex, UInt32 uniformBlockBinding)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformBlockBinding((UInt32)program, (UInt32)uniformBlockIndex, (UInt32)uniformBlockBinding);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
        public static 
        void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
        public static 
        unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
        public static 
        void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
        public static 
        void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix2x3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
        public static 
        unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix2x3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
        public static 
        void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix2x3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
        public static 
        void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix2x4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
        public static 
        unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix2x4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
        public static 
        void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix2x4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
        public static 
        void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
        public static 
        unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
        public static 
        void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
        public static 
        void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix3x2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
        public static 
        unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix3x2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
        public static 
        void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix3x2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
        public static 
        void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix3x4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
        public static 
        unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix3x4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
        public static 
        void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix3x4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
        public static 
        void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
        public static 
        unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
        public static 
        void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix4fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
        public static 
        void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix4x2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
        public static 
        unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix4x2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
        public static 
        void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix4x2fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
        public static 
        void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glUniformMatrix4x3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
        public static 
        unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix4x3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version21", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
        public static 
        void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glUniformMatrix4x3fv((Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version15", Version = "1.5", EntryPoint = "glUnmapBuffer")]
        public static 
        bool UnmapBuffer(BufferTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glUnmapBuffer((BufferTarget)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Installs a program object as part of current rendering state
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object whose executables are to be used as part of current rendering state.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUseProgram")]
        public static 
        void UseProgram(Int32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUseProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Installs a program object as part of current rendering state
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object whose executables are to be used as part of current rendering state.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glUseProgram")]
        public static 
        void UseProgram(UInt32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUseProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Validates a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be validated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glValidateProgram")]
        public static 
        void ValidateProgram(Int32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glValidateProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Validates a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be validated.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glValidateProgram")]
        public static 
        void ValidateProgram(UInt32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glValidateProgram((UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2d")]
        public static 
        void Vertex2(Double x, Double y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex2d((Double)x, (Double)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2dv")]
        public static 
        unsafe void Vertex2(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex2dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2dv")]
        public static 
        void Vertex2(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertex2dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2dv")]
        public static 
        void Vertex2(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertex2dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2f")]
        public static 
        void Vertex2(Single x, Single y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex2f((Single)x, (Single)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2fv")]
        public static 
        void Vertex2(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertex2fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2fv")]
        public static 
        unsafe void Vertex2(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex2fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2fv")]
        public static 
        void Vertex2(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertex2fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2i")]
        public static 
        void Vertex2(Int32 x, Int32 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex2i((Int32)x, (Int32)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2iv")]
        public static 
        unsafe void Vertex2(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex2iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2iv")]
        public static 
        void Vertex2(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertex2iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2iv")]
        public static 
        void Vertex2(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertex2iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2s")]
        public static 
        void Vertex2(Int16 x, Int16 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex2s((Int16)x, (Int16)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2sv")]
        public static 
        unsafe void Vertex2(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex2sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2sv")]
        public static 
        void Vertex2(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertex2sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex2sv")]
        public static 
        void Vertex2(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertex2sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3d")]
        public static 
        void Vertex3(Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex3d((Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3dv")]
        public static 
        unsafe void Vertex3(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex3dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3dv")]
        public static 
        void Vertex3(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertex3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3dv")]
        public static 
        void Vertex3(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertex3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3f")]
        public static 
        void Vertex3(Single x, Single y, Single z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex3f((Single)x, (Single)y, (Single)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3fv")]
        public static 
        void Vertex3(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertex3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3fv")]
        public static 
        unsafe void Vertex3(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex3fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3fv")]
        public static 
        void Vertex3(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertex3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3i")]
        public static 
        void Vertex3(Int32 x, Int32 y, Int32 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex3i((Int32)x, (Int32)y, (Int32)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3iv")]
        public static 
        unsafe void Vertex3(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex3iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3iv")]
        public static 
        void Vertex3(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertex3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3iv")]
        public static 
        void Vertex3(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertex3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3s")]
        public static 
        void Vertex3(Int16 x, Int16 y, Int16 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex3s((Int16)x, (Int16)y, (Int16)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3sv")]
        public static 
        unsafe void Vertex3(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex3sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3sv")]
        public static 
        void Vertex3(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertex3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex3sv")]
        public static 
        void Vertex3(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertex3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4d")]
        public static 
        void Vertex4(Double x, Double y, Double z, Double w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex4d((Double)x, (Double)y, (Double)z, (Double)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4dv")]
        public static 
        unsafe void Vertex4(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex4dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4dv")]
        public static 
        void Vertex4(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertex4dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4dv")]
        public static 
        void Vertex4(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertex4dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4f")]
        public static 
        void Vertex4(Single x, Single y, Single z, Single w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex4f((Single)x, (Single)y, (Single)z, (Single)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4fv")]
        public static 
        void Vertex4(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertex4fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4fv")]
        public static 
        unsafe void Vertex4(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex4fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4fv")]
        public static 
        void Vertex4(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertex4fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4i")]
        public static 
        void Vertex4(Int32 x, Int32 y, Int32 z, Int32 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex4i((Int32)x, (Int32)y, (Int32)z, (Int32)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4iv")]
        public static 
        unsafe void Vertex4(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex4iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4iv")]
        public static 
        void Vertex4(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertex4iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4iv")]
        public static 
        void Vertex4(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertex4iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4s")]
        public static 
        void Vertex4(Int16 x, Int16 y, Int16 z, Int16 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex4s((Int16)x, (Int16)y, (Int16)z, (Int16)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4sv")]
        public static 
        unsafe void Vertex4(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertex4sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4sv")]
        public static 
        void Vertex4(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertex4sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify a vertex
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify x, y, z, and w coordinates of a vertex. Not all parameters are present in all forms of the command.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10Deprecated", Version = "1.0", EntryPoint = "glVertex4sv")]
        public static 
        void Vertex4(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertex4sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1d")]
        public static 
        void VertexAttrib1(Int32 index, Double x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1d((UInt32)index, (Double)x);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1d")]
        public static 
        void VertexAttrib1(UInt32 index, Double x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1d((UInt32)index, (Double)x);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1dv")]
        public static 
        unsafe void VertexAttrib1(Int32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1dv")]
        public static 
        unsafe void VertexAttrib1(UInt32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1f")]
        public static 
        void VertexAttrib1(Int32 index, Single x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1f((UInt32)index, (Single)x);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1f")]
        public static 
        void VertexAttrib1(UInt32 index, Single x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1f((UInt32)index, (Single)x);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
        public static 
        unsafe void VertexAttrib1(Int32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1fv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
        public static 
        unsafe void VertexAttrib1(UInt32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1fv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1s")]
        public static 
        void VertexAttrib1(Int32 index, Int16 x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1s((UInt32)index, (Int16)x);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1s")]
        public static 
        void VertexAttrib1(UInt32 index, Int16 x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1s((UInt32)index, (Int16)x);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1sv")]
        public static 
        unsafe void VertexAttrib1(Int32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib1sv")]
        public static 
        unsafe void VertexAttrib1(UInt32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib1sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2d")]
        public static 
        void VertexAttrib2(Int32 index, Double x, Double y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2d((UInt32)index, (Double)x, (Double)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2d")]
        public static 
        void VertexAttrib2(UInt32 index, Double x, Double y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2d((UInt32)index, (Double)x, (Double)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
        public static 
        unsafe void VertexAttrib2(Int32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
        public static 
        void VertexAttrib2(Int32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttrib2dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
        public static 
        void VertexAttrib2(Int32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttrib2dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
        public static 
        unsafe void VertexAttrib2(UInt32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
        public static 
        void VertexAttrib2(UInt32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttrib2dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
        public static 
        void VertexAttrib2(UInt32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttrib2dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2f")]
        public static 
        void VertexAttrib2(Int32 index, Single x, Single y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2f((UInt32)index, (Single)x, (Single)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2f")]
        public static 
        void VertexAttrib2(UInt32 index, Single x, Single y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2f((UInt32)index, (Single)x, (Single)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
        public static 
        void VertexAttrib2(Int32 index, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertexAttrib2fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
        public static 
        unsafe void VertexAttrib2(Int32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2fv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
        public static 
        void VertexAttrib2(Int32 index, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertexAttrib2fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
        public static 
        void VertexAttrib2(UInt32 index, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertexAttrib2fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
        public static 
        unsafe void VertexAttrib2(UInt32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2fv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
        public static 
        void VertexAttrib2(UInt32 index, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertexAttrib2fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2s")]
        public static 
        void VertexAttrib2(Int32 index, Int16 x, Int16 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2s((UInt32)index, (Int16)x, (Int16)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2s")]
        public static 
        void VertexAttrib2(UInt32 index, Int16 x, Int16 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2s((UInt32)index, (Int16)x, (Int16)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
        public static 
        unsafe void VertexAttrib2(Int32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
        public static 
        void VertexAttrib2(Int32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttrib2sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
        public static 
        void VertexAttrib2(Int32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib2sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
        public static 
        unsafe void VertexAttrib2(UInt32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib2sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
        public static 
        void VertexAttrib2(UInt32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttrib2sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
        public static 
        void VertexAttrib2(UInt32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib2sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3d")]
        public static 
        void VertexAttrib3(Int32 index, Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3d((UInt32)index, (Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3d")]
        public static 
        void VertexAttrib3(UInt32 index, Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3d((UInt32)index, (Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
        public static 
        unsafe void VertexAttrib3(Int32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
        public static 
        void VertexAttrib3(Int32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttrib3dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
        public static 
        void VertexAttrib3(Int32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttrib3dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
        public static 
        unsafe void VertexAttrib3(UInt32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
        public static 
        void VertexAttrib3(UInt32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttrib3dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
        public static 
        void VertexAttrib3(UInt32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttrib3dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3f")]
        public static 
        void VertexAttrib3(Int32 index, Single x, Single y, Single z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3f((UInt32)index, (Single)x, (Single)y, (Single)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3f")]
        public static 
        void VertexAttrib3(UInt32 index, Single x, Single y, Single z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3f((UInt32)index, (Single)x, (Single)y, (Single)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
        public static 
        void VertexAttrib3(Int32 index, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertexAttrib3fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
        public static 
        unsafe void VertexAttrib3(Int32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3fv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
        public static 
        void VertexAttrib3(Int32 index, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertexAttrib3fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
        public static 
        void VertexAttrib3(UInt32 index, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertexAttrib3fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
        public static 
        unsafe void VertexAttrib3(UInt32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3fv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
        public static 
        void VertexAttrib3(UInt32 index, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertexAttrib3fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3s")]
        public static 
        void VertexAttrib3(Int32 index, Int16 x, Int16 y, Int16 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3s((UInt32)index, (Int16)x, (Int16)y, (Int16)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3s")]
        public static 
        void VertexAttrib3(UInt32 index, Int16 x, Int16 y, Int16 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3s((UInt32)index, (Int16)x, (Int16)y, (Int16)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
        public static 
        unsafe void VertexAttrib3(Int32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
        public static 
        void VertexAttrib3(Int32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttrib3sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
        public static 
        void VertexAttrib3(Int32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib3sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
        public static 
        unsafe void VertexAttrib3(UInt32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib3sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
        public static 
        void VertexAttrib3(UInt32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttrib3sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
        public static 
        void VertexAttrib3(UInt32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib3sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
        public static 
        void VertexAttrib4(UInt32 index, ref SByte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4bv((UInt32)index, (SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
        public static 
        unsafe void VertexAttrib4(UInt32 index, SByte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4bv((UInt32)index, (SByte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
        public static 
        void VertexAttrib4(UInt32 index, SByte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = v)
                {
                    Delegates.glVertexAttrib4bv((UInt32)index, (SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4d")]
        public static 
        void VertexAttrib4(Int32 index, Double x, Double y, Double z, Double w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4d((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4d")]
        public static 
        void VertexAttrib4(UInt32 index, Double x, Double y, Double z, Double w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4d((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
        public static 
        unsafe void VertexAttrib4(Int32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
        public static 
        void VertexAttrib4(Int32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttrib4dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
        public static 
        void VertexAttrib4(Int32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
        public static 
        unsafe void VertexAttrib4(UInt32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
        public static 
        void VertexAttrib4(UInt32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttrib4dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
        public static 
        void VertexAttrib4(UInt32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4f")]
        public static 
        void VertexAttrib4(Int32 index, Single x, Single y, Single z, Single w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4f((UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4f")]
        public static 
        void VertexAttrib4(UInt32 index, Single x, Single y, Single z, Single w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4f((UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
        public static 
        void VertexAttrib4(Int32 index, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
        public static 
        unsafe void VertexAttrib4(Int32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4fv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
        public static 
        void VertexAttrib4(Int32 index, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertexAttrib4fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
        public static 
        void VertexAttrib4(UInt32 index, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
        public static 
        unsafe void VertexAttrib4(UInt32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4fv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
        public static 
        void VertexAttrib4(UInt32 index, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glVertexAttrib4fv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
        public static 
        unsafe void VertexAttrib4(Int32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
        public static 
        void VertexAttrib4(Int32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttrib4iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
        public static 
        void VertexAttrib4(Int32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
        public static 
        unsafe void VertexAttrib4(UInt32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
        public static 
        void VertexAttrib4(UInt32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttrib4iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
        public static 
        void VertexAttrib4(UInt32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
        public static 
        void VertexAttrib4N(UInt32 index, ref SByte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Nbv((UInt32)index, (SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
        public static 
        unsafe void VertexAttrib4N(UInt32 index, SByte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nbv((UInt32)index, (SByte*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
        public static 
        void VertexAttrib4N(UInt32 index, SByte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Nbv((UInt32)index, (SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
        public static 
        unsafe void VertexAttrib4N(Int32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Niv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
        public static 
        void VertexAttrib4N(Int32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Niv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
        public static 
        void VertexAttrib4N(Int32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Niv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
        public static 
        unsafe void VertexAttrib4N(UInt32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Niv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
        public static 
        void VertexAttrib4N(UInt32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Niv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
        public static 
        void VertexAttrib4N(UInt32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Niv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
        public static 
        unsafe void VertexAttrib4N(Int32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nsv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
        public static 
        void VertexAttrib4N(Int32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Nsv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
        public static 
        void VertexAttrib4N(Int32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Nsv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
        public static 
        unsafe void VertexAttrib4N(UInt32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nsv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
        public static 
        void VertexAttrib4N(UInt32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Nsv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
        public static 
        void VertexAttrib4N(UInt32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Nsv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nub")]
        public static 
        void VertexAttrib4N(Int32 index, Byte x, Byte y, Byte z, Byte w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nub((UInt32)index, (Byte)x, (Byte)y, (Byte)z, (Byte)w);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nub")]
        public static 
        void VertexAttrib4N(UInt32 index, Byte x, Byte y, Byte z, Byte w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nub((UInt32)index, (Byte)x, (Byte)y, (Byte)z, (Byte)w);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
        public static 
        unsafe void VertexAttrib4N(Int32 index, Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nubv((UInt32)index, (Byte*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
        public static 
        void VertexAttrib4N(Int32 index, Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Nubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
        public static 
        void VertexAttrib4N(Int32 index, ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Nubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
        public static 
        unsafe void VertexAttrib4N(UInt32 index, Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nubv((UInt32)index, (Byte*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
        public static 
        void VertexAttrib4N(UInt32 index, Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Nubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
        public static 
        void VertexAttrib4N(UInt32 index, ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Nubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
        public static 
        void VertexAttrib4N(UInt32 index, ref UInt32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Nuiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
        public static 
        unsafe void VertexAttrib4N(UInt32 index, UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nuiv((UInt32)index, (UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
        public static 
        void VertexAttrib4N(UInt32 index, UInt32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Nuiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
        public static 
        void VertexAttrib4N(UInt32 index, ref UInt16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4Nusv((UInt32)index, (UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
        public static 
        unsafe void VertexAttrib4N(UInt32 index, UInt16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4Nusv((UInt32)index, (UInt16*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
        public static 
        void VertexAttrib4N(UInt32 index, UInt16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = v)
                {
                    Delegates.glVertexAttrib4Nusv((UInt32)index, (UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4s")]
        public static 
        void VertexAttrib4(Int32 index, Int16 x, Int16 y, Int16 z, Int16 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4s((UInt32)index, (Int16)x, (Int16)y, (Int16)z, (Int16)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4s")]
        public static 
        void VertexAttrib4(UInt32 index, Int16 x, Int16 y, Int16 z, Int16 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4s((UInt32)index, (Int16)x, (Int16)y, (Int16)z, (Int16)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
        public static 
        unsafe void VertexAttrib4(Int32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
        public static 
        void VertexAttrib4(Int32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttrib4sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
        public static 
        void VertexAttrib4(Int32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
        public static 
        unsafe void VertexAttrib4(UInt32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
        public static 
        void VertexAttrib4(UInt32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttrib4sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
        public static 
        void VertexAttrib4(UInt32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
        public static 
        unsafe void VertexAttrib4(Int32 index, Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4ubv((UInt32)index, (Byte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
        public static 
        void VertexAttrib4(Int32 index, Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glVertexAttrib4ubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
        public static 
        void VertexAttrib4(Int32 index, ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4ubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
        public static 
        unsafe void VertexAttrib4(UInt32 index, Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4ubv((UInt32)index, (Byte*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
        public static 
        void VertexAttrib4(UInt32 index, Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glVertexAttrib4ubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
        public static 
        void VertexAttrib4(UInt32 index, ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4ubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
        public static 
        void VertexAttrib4(UInt32 index, ref UInt32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4uiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
        public static 
        unsafe void VertexAttrib4(UInt32 index, UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4uiv((UInt32)index, (UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
        public static 
        void VertexAttrib4(UInt32 index, UInt32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = v)
                {
                    Delegates.glVertexAttrib4uiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
        public static 
        void VertexAttrib4(UInt32 index, ref UInt16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = &v)
                {
                    Delegates.glVertexAttrib4usv((UInt32)index, (UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
        public static 
        unsafe void VertexAttrib4(UInt32 index, UInt16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttrib4usv((UInt32)index, (UInt16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
        public static 
        void VertexAttrib4(UInt32 index, UInt16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = v)
                {
                    Delegates.glVertexAttrib4usv((UInt32)index, (UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI1i")]
        public static 
        void VertexAttribI1(Int32 index, Int32 x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI1i((UInt32)index, (Int32)x);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI1i")]
        public static 
        void VertexAttribI1(UInt32 index, Int32 x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI1i((UInt32)index, (Int32)x);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI1iv")]
        public static 
        unsafe void VertexAttribI1(Int32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI1iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI1iv")]
        public static 
        unsafe void VertexAttribI1(UInt32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI1iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI1ui")]
        public static 
        void VertexAttribI1(UInt32 index, UInt32 x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI1ui((UInt32)index, (UInt32)x);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI1uiv")]
        public static 
        unsafe void VertexAttribI1(UInt32 index, UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI1uiv((UInt32)index, (UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2i")]
        public static 
        void VertexAttribI2(Int32 index, Int32 x, Int32 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI2i((UInt32)index, (Int32)x, (Int32)y);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2i")]
        public static 
        void VertexAttribI2(UInt32 index, Int32 x, Int32 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI2i((UInt32)index, (Int32)x, (Int32)y);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
        public static 
        unsafe void VertexAttribI2(Int32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI2iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
        public static 
        void VertexAttribI2(Int32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttribI2iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
        public static 
        void VertexAttribI2(Int32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI2iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
        public static 
        unsafe void VertexAttribI2(UInt32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI2iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
        public static 
        void VertexAttribI2(UInt32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttribI2iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
        public static 
        void VertexAttribI2(UInt32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI2iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2ui")]
        public static 
        void VertexAttribI2(UInt32 index, UInt32 x, UInt32 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI2ui((UInt32)index, (UInt32)x, (UInt32)y);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
        public static 
        void VertexAttribI2(UInt32 index, ref UInt32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI2uiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
        public static 
        unsafe void VertexAttribI2(UInt32 index, UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI2uiv((UInt32)index, (UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
        public static 
        void VertexAttribI2(UInt32 index, UInt32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = v)
                {
                    Delegates.glVertexAttribI2uiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3i")]
        public static 
        void VertexAttribI3(Int32 index, Int32 x, Int32 y, Int32 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI3i((UInt32)index, (Int32)x, (Int32)y, (Int32)z);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3i")]
        public static 
        void VertexAttribI3(UInt32 index, Int32 x, Int32 y, Int32 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI3i((UInt32)index, (Int32)x, (Int32)y, (Int32)z);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
        public static 
        unsafe void VertexAttribI3(Int32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI3iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
        public static 
        void VertexAttribI3(Int32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttribI3iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
        public static 
        void VertexAttribI3(Int32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI3iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
        public static 
        unsafe void VertexAttribI3(UInt32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI3iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
        public static 
        void VertexAttribI3(UInt32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttribI3iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
        public static 
        void VertexAttribI3(UInt32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI3iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3ui")]
        public static 
        void VertexAttribI3(UInt32 index, UInt32 x, UInt32 y, UInt32 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI3ui((UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
        public static 
        void VertexAttribI3(UInt32 index, ref UInt32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI3uiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
        public static 
        unsafe void VertexAttribI3(UInt32 index, UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI3uiv((UInt32)index, (UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
        public static 
        void VertexAttribI3(UInt32 index, UInt32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = v)
                {
                    Delegates.glVertexAttribI3uiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
        public static 
        void VertexAttribI4(UInt32 index, ref SByte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4bv((UInt32)index, (SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
        public static 
        unsafe void VertexAttribI4(UInt32 index, SByte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4bv((UInt32)index, (SByte*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
        public static 
        void VertexAttribI4(UInt32 index, SByte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (SByte* v_ptr = v)
                {
                    Delegates.glVertexAttribI4bv((UInt32)index, (SByte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4i")]
        public static 
        void VertexAttribI4(Int32 index, Int32 x, Int32 y, Int32 z, Int32 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4i((UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4i")]
        public static 
        void VertexAttribI4(UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4i((UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
        public static 
        unsafe void VertexAttribI4(Int32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
        public static 
        void VertexAttribI4(Int32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttribI4iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
        public static 
        void VertexAttribI4(Int32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
        public static 
        unsafe void VertexAttribI4(UInt32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4iv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
        public static 
        void VertexAttribI4(UInt32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glVertexAttribI4iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
        public static 
        void VertexAttribI4(UInt32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4iv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
        public static 
        unsafe void VertexAttribI4(Int32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
        public static 
        void VertexAttribI4(Int32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttribI4sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
        public static 
        void VertexAttribI4(Int32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
        public static 
        unsafe void VertexAttribI4(UInt32 index, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4sv((UInt32)index, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
        public static 
        void VertexAttribI4(UInt32 index, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glVertexAttribI4sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
        public static 
        void VertexAttribI4(UInt32 index, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4sv((UInt32)index, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
        public static 
        unsafe void VertexAttribI4(Int32 index, Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4ubv((UInt32)index, (Byte*)v);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
        public static 
        void VertexAttribI4(Int32 index, Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glVertexAttribI4ubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
        public static 
        void VertexAttribI4(Int32 index, ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4ubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
        public static 
        unsafe void VertexAttribI4(UInt32 index, Byte* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4ubv((UInt32)index, (Byte*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
        public static 
        void VertexAttribI4(UInt32 index, Byte[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = v)
                {
                    Delegates.glVertexAttribI4ubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
        public static 
        void VertexAttribI4(UInt32 index, ref Byte v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Byte* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4ubv((UInt32)index, (Byte*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4ui")]
        public static 
        void VertexAttribI4(UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4ui((UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z, (UInt32)w);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
        public static 
        void VertexAttribI4(UInt32 index, ref UInt32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4uiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
        public static 
        unsafe void VertexAttribI4(UInt32 index, UInt32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4uiv((UInt32)index, (UInt32*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
        public static 
        void VertexAttribI4(UInt32 index, UInt32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* v_ptr = v)
                {
                    Delegates.glVertexAttribI4uiv((UInt32)index, (UInt32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
        public static 
        void VertexAttribI4(UInt32 index, ref UInt16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = &v)
                {
                    Delegates.glVertexAttribI4usv((UInt32)index, (UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
        public static 
        unsafe void VertexAttribI4(UInt32 index, UInt16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribI4usv((UInt32)index, (UInt16*)v);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
        public static 
        void VertexAttribI4(UInt32 index, UInt16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* v_ptr = v)
                {
                    Delegates.glVertexAttribI4usv((UInt32)index, (UInt16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(Int32 index, Int32 size, VertexAttribParameter type, Int32 stride, [In, Out] ref T4 pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(Int32 index, Int32 size, VertexAttribParameter type, Int32 stride, [In, Out] T4[,,] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(Int32 index, Int32 size, VertexAttribParameter type, Int32 stride, [In, Out] T4[,] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(Int32 index, Int32 size, VertexAttribParameter type, Int32 stride, [In, Out] T4[] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer(Int32 index, Int32 size, VertexAttribParameter type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(UInt32 index, Int32 size, VertexAttribParameter type, Int32 stride, [In, Out] ref T4 pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(UInt32 index, Int32 size, VertexAttribParameter type, Int32 stride, [In, Out] T4[,,] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(UInt32 index, Int32 size, VertexAttribParameter type, Int32 stride, [In, Out] T4[,] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(UInt32 index, Int32 size, VertexAttribParameter type, Int32 stride, [In, Out] T4[] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version30", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer(UInt32 index, Int32 size, VertexAttribParameter type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (VertexAttribParameter)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(Int32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, [In, Out] ref T5 pointer)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(Int32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, [In, Out] T5[,,] pointer)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(Int32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, [In, Out] T5[,] pointer)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(Int32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, [In, Out] T5[] pointer)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer(Int32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(UInt32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, [In, Out] ref T5 pointer)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(UInt32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, [In, Out] T5[,,] pointer)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(UInt32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, [In, Out] T5[,] pointer)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(UInt32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, [In, Out] T5[] pointer)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version20", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer(UInt32 index, Int32 size, VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer<T3>(Int32 size, VertexPointerType type, Int32 stride, [In, Out] ref T3 pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexPointer((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer<T3>(Int32 size, VertexPointerType type, Int32 stride, [In, Out] T3[,,] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexPointer((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer<T3>(Int32 size, VertexPointerType type, Int32 stride, [In, Out] T3[,] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexPointer((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer<T3>(Int32 size, VertexPointerType type, Int32 stride, [In, Out] T3[] pointer)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexPointer((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version11Deprecated", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer(Int32 size, VertexPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexPointer((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Set the viewport
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify the width and height of the viewport. When a GL context is first attached to a window, width and height are set to the dimensions of that window.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version10", Version = "1.0", EntryPoint = "glViewport")]
        public static 
        void Viewport(Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glViewport((Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glWaitSync")]
        public static 
        void WaitSync(IntPtr sync, Int32 flags, Int64 timeout)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWaitSync((IntPtr)sync, (UInt32)flags, (UInt64)timeout);
            #if DEBUG
            }
            #endif
        }

        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ArbSync", Version = "1.2", EntryPoint = "glWaitSync")]
        public static 
        void WaitSync(IntPtr sync, UInt32 flags, UInt64 timeout)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWaitSync((IntPtr)sync, (UInt32)flags, (UInt64)timeout);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2d")]
        public static 
        void WindowPos2(Double x, Double y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos2d((Double)x, (Double)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2dv")]
        public static 
        unsafe void WindowPos2(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos2dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2dv")]
        public static 
        void WindowPos2(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glWindowPos2dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2dv")]
        public static 
        void WindowPos2(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glWindowPos2dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2f")]
        public static 
        void WindowPos2(Single x, Single y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos2f((Single)x, (Single)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2fv")]
        public static 
        void WindowPos2(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glWindowPos2fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2fv")]
        public static 
        unsafe void WindowPos2(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos2fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2fv")]
        public static 
        void WindowPos2(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glWindowPos2fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2i")]
        public static 
        void WindowPos2(Int32 x, Int32 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos2i((Int32)x, (Int32)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2iv")]
        public static 
        unsafe void WindowPos2(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos2iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2iv")]
        public static 
        void WindowPos2(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glWindowPos2iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2iv")]
        public static 
        void WindowPos2(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glWindowPos2iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2s")]
        public static 
        void WindowPos2(Int16 x, Int16 y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos2s((Int16)x, (Int16)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2sv")]
        public static 
        unsafe void WindowPos2(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos2sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2sv")]
        public static 
        void WindowPos2(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glWindowPos2sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos2sv")]
        public static 
        void WindowPos2(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glWindowPos2sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3d")]
        public static 
        void WindowPos3(Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos3d((Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3dv")]
        public static 
        unsafe void WindowPos3(Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos3dv((Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3dv")]
        public static 
        void WindowPos3(Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glWindowPos3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3dv")]
        public static 
        void WindowPos3(ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glWindowPos3dv((Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3f")]
        public static 
        void WindowPos3(Single x, Single y, Single z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos3f((Single)x, (Single)y, (Single)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3fv")]
        public static 
        void WindowPos3(ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glWindowPos3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3fv")]
        public static 
        unsafe void WindowPos3(Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos3fv((Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3fv")]
        public static 
        void WindowPos3(Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glWindowPos3fv((Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3i")]
        public static 
        void WindowPos3(Int32 x, Int32 y, Int32 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos3i((Int32)x, (Int32)y, (Int32)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3iv")]
        public static 
        unsafe void WindowPos3(Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos3iv((Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3iv")]
        public static 
        void WindowPos3(Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glWindowPos3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3iv")]
        public static 
        void WindowPos3(ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glWindowPos3iv((Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3s")]
        public static 
        void WindowPos3(Int16 x, Int16 y, Int16 z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos3s((Int16)x, (Int16)y, (Int16)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3sv")]
        public static 
        unsafe void WindowPos3(Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glWindowPos3sv((Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3sv")]
        public static 
        void WindowPos3(Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glWindowPos3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "Version14Deprecated", Version = "1.4", EntryPoint = "glWindowPos3sv")]
        public static 
        void WindowPos3(ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glWindowPos3sv((Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        public static partial class Ext
        {
            [AutoGenerated(Category = "ExtStencilTwoSide", Version = "1.3", EntryPoint = "glActiveStencilFaceEXT")]
            public static 
            void ActiveStencilFace(ExtStencilTwoSide face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glActiveStencilFaceEXT((ExtStencilTwoSide)face);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtLightTexture", Version = "1.1", EntryPoint = "glApplyTextureEXT")]
            public static 
            void ApplyTexture(ExtLightTexture mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glApplyTextureEXT((ExtLightTexture)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            unsafe bool AreTexturesResident(Int32 n, Int32* textures, [Out] bool* residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glAreTexturesResidentEXT((Int32)n, (UInt32*)textures, (bool*)residences);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            bool AreTexturesResident(Int32 n, Int32[] textures, [Out] bool[] residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = textures)
                    fixed (bool* residences_ptr = residences)
                    {
                        return Delegates.glAreTexturesResidentEXT((Int32)n, (UInt32*)textures_ptr, (bool*)residences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            bool AreTexturesResident(Int32 n, ref Int32 textures, [Out] out bool residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = &textures)
                    fixed (bool* residences_ptr = &residences)
                    {
                        bool retval = Delegates.glAreTexturesResidentEXT((Int32)n, (UInt32*)textures_ptr, (bool*)residences_ptr);
                        residences = *residences_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            bool AreTexturesResident(Int32 n, ref UInt32 textures, [Out] out bool residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = &textures)
                    fixed (bool* residences_ptr = &residences)
                    {
                        bool retval = Delegates.glAreTexturesResidentEXT((Int32)n, (UInt32*)textures_ptr, (bool*)residences_ptr);
                        residences = *residences_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            unsafe bool AreTexturesResident(Int32 n, UInt32* textures, [Out] bool* residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glAreTexturesResidentEXT((Int32)n, (UInt32*)textures, (bool*)residences);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if textures are loaded in texture memory
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be queried.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be queried.
        /// </para>
        /// </param>
        /// <param name="residences">
        /// <para>
        /// Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            bool AreTexturesResident(Int32 n, UInt32[] textures, [Out] bool[] residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = textures)
                    fixed (bool* residences_ptr = residences)
                    {
                        return Delegates.glAreTexturesResidentEXT((Int32)n, (UInt32*)textures_ptr, (bool*)residences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render a vertex using the specified vertex array element
        /// </summary>
        /// <param name="i">
        /// <para>
        /// Specifies an index into the enabled vertex data arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glArrayElementEXT")]
            public static 
            void ArrayElement(Int32 i)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glArrayElementEXT((Int32)i);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glBeginTransformFeedbackEXT")]
            public static 
            void BeginTransformFeedback(ExtTransformFeedback primitiveMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginTransformFeedbackEXT((ExtTransformFeedback)primitiveMode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glBeginVertexShaderEXT")]
            public static 
            void BeginVertexShader()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginVertexShaderEXT();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glBindBufferBaseEXT")]
            public static 
            void BindBufferBase(ExtTransformFeedback target, Int32 index, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferBaseEXT((ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glBindBufferBaseEXT")]
            public static 
            void BindBufferBase(ExtTransformFeedback target, UInt32 index, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferBaseEXT((ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glBindBufferOffsetEXT")]
            public static 
            void BindBufferOffset(ExtTransformFeedback target, Int32 index, Int32 buffer, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferOffsetEXT((ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glBindBufferOffsetEXT")]
            public static 
            void BindBufferOffset(ExtTransformFeedback target, UInt32 index, UInt32 buffer, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferOffsetEXT((ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glBindBufferRangeEXT")]
            public static 
            void BindBufferRange(ExtTransformFeedback target, Int32 index, Int32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferRangeEXT((ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glBindBufferRangeEXT")]
            public static 
            void BindBufferRange(ExtTransformFeedback target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferRangeEXT((ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glBindFragDataLocationEXT")]
            public static 
            void BindFragDataLocation(Int32 program, Int32 color, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindFragDataLocationEXT((UInt32)program, (UInt32)color, (String)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glBindFragDataLocationEXT")]
            public static 
            void BindFragDataLocation(UInt32 program, UInt32 color, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindFragDataLocationEXT((UInt32)program, (UInt32)color, (String)name);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glBindFramebufferEXT")]
            public static 
            void BindFramebuffer(FramebufferTarget target, Int32 framebuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindFramebufferEXT((FramebufferTarget)target, (UInt32)framebuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glBindFramebufferEXT")]
            public static 
            void BindFramebuffer(FramebufferTarget target, UInt32 framebuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindFramebufferEXT((FramebufferTarget)target, (UInt32)framebuffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glBindLightParameterEXT")]
            public static 
            Int32 BindLightParameter(LightName light, LightParameter value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindLightParameterEXT((LightName)light, (LightParameter)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glBindMaterialParameterEXT")]
            public static 
            Int32 BindMaterialParameter(MaterialFace face, MaterialParameter value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindMaterialParameterEXT((MaterialFace)face, (MaterialParameter)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glBindMultiTextureEXT")]
            public static 
            void BindMultiTexture(TextureUnit texunit, TextureTarget target, Int32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindMultiTextureEXT((TextureUnit)texunit, (TextureTarget)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glBindMultiTextureEXT")]
            public static 
            void BindMultiTexture(TextureUnit texunit, TextureTarget target, UInt32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindMultiTextureEXT((TextureUnit)texunit, (TextureTarget)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glBindParameterEXT")]
            public static 
            Int32 BindParameter(ExtVertexShader value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindParameterEXT((ExtVertexShader)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glBindRenderbufferEXT")]
            public static 
            void BindRenderbuffer(RenderbufferTarget target, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindRenderbufferEXT((RenderbufferTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glBindRenderbufferEXT")]
            public static 
            void BindRenderbuffer(RenderbufferTarget target, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindRenderbufferEXT((RenderbufferTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glBindTexGenParameterEXT")]
            public static 
            Int32 BindTexGenParameter(TextureUnit unit, TextureCoordName coord, TextureGenParameter value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindTexGenParameterEXT((TextureUnit)unit, (TextureCoordName)coord, (TextureGenParameter)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Bind a named texture to a texturing target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture is bound. Must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of a texture.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glBindTextureEXT")]
            public static 
            void BindTexture(TextureTarget target, Int32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindTextureEXT((TextureTarget)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Bind a named texture to a texturing target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture is bound. Must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of a texture.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glBindTextureEXT")]
            public static 
            void BindTexture(TextureTarget target, UInt32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindTextureEXT((TextureTarget)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glBindTextureUnitParameterEXT")]
            public static 
            Int32 BindTextureUnitParameter(TextureUnit unit, ExtVertexShader value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindTextureUnitParameterEXT((TextureUnit)unit, (ExtVertexShader)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glBindVertexShaderEXT")]
            public static 
            void BindVertexShader(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindVertexShaderEXT((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glBindVertexShaderEXT")]
            public static 
            void BindVertexShader(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindVertexShaderEXT((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3bEXT")]
            public static 
            void Binormal3(Byte bx, Byte by, Byte bz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3bEXT((SByte)bx, (SByte)by, (SByte)bz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3bEXT")]
            public static 
            void Binormal3(SByte bx, SByte by, SByte bz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3bEXT((SByte)bx, (SByte)by, (SByte)bz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3bvEXT")]
            public static 
            unsafe void Binormal3(Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3bvEXT((SByte*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3bvEXT")]
            public static 
            void Binormal3(Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glBinormal3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3bvEXT")]
            public static 
            void Binormal3(ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glBinormal3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3bvEXT")]
            public static 
            void Binormal3(ref SByte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = &v)
                    {
                        Delegates.glBinormal3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3bvEXT")]
            public static 
            unsafe void Binormal3(SByte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3bvEXT((SByte*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3bvEXT")]
            public static 
            void Binormal3(SByte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = v)
                    {
                        Delegates.glBinormal3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3dEXT")]
            public static 
            void Binormal3(Double bx, Double by, Double bz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3dEXT((Double)bx, (Double)by, (Double)bz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3dvEXT")]
            public static 
            unsafe void Binormal3(Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3dvEXT((Double*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3dvEXT")]
            public static 
            void Binormal3(Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glBinormal3dvEXT((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3dvEXT")]
            public static 
            void Binormal3(ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glBinormal3dvEXT((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3fEXT")]
            public static 
            void Binormal3(Single bx, Single by, Single bz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3fEXT((Single)bx, (Single)by, (Single)bz);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3fvEXT")]
            public static 
            void Binormal3(ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glBinormal3fvEXT((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3fvEXT")]
            public static 
            unsafe void Binormal3(Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3fvEXT((Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3fvEXT")]
            public static 
            void Binormal3(Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glBinormal3fvEXT((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3iEXT")]
            public static 
            void Binormal3(Int32 bx, Int32 by, Int32 bz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3iEXT((Int32)bx, (Int32)by, (Int32)bz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3ivEXT")]
            public static 
            unsafe void Binormal3(Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3ivEXT((Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3ivEXT")]
            public static 
            void Binormal3(Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glBinormal3ivEXT((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3ivEXT")]
            public static 
            void Binormal3(ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glBinormal3ivEXT((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3sEXT")]
            public static 
            void Binormal3(Int16 bx, Int16 by, Int16 bz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3sEXT((Int16)bx, (Int16)by, (Int16)bz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3svEXT")]
            public static 
            unsafe void Binormal3(Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormal3svEXT((Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3svEXT")]
            public static 
            void Binormal3(Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glBinormal3svEXT((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormal3svEXT")]
            public static 
            void Binormal3(ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glBinormal3svEXT((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glBinormalPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glBinormalPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glBinormalPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glBinormalPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer(NormalPointerType type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormalPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the blend color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// specify the components of GL_BLEND_COLOR
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtBlendColor", Version = "1.0", EntryPoint = "glBlendColorEXT")]
            public static 
            void BlendColor(Single red, Single green, Single blue, Single alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendColorEXT((Single)red, (Single)green, (Single)blue, (Single)alpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// specifies how source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtBlendMinmax", Version = "1.0", EntryPoint = "glBlendEquationEXT")]
            public static 
            void BlendEquation(ExtBlendMinmax mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationEXT((ExtBlendMinmax)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="modeRGB">
        /// <para>
        /// specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
        /// <param name="modeAlpha">
        /// <para>
        /// specifies the alpha blend equation, how the alpha component of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtBlendEquationSeparate", Version = "1.2", EntryPoint = "glBlendEquationSeparateEXT")]
            public static 
            void BlendEquationSeparate(ExtBlendEquationSeparate modeRGB, ExtBlendEquationSeparate modeAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationSeparateEXT((ExtBlendEquationSeparate)modeRGB, (ExtBlendEquationSeparate)modeAlpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstRGB">
        /// <para>
        /// Specifies how the red, green, and blue destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The same symbolic constants are accepted as for srcRGB. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The same symbolic constants are accepted as for dstRGB. The initial value is GL_ZERO.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtBlendFuncSeparate", Version = "1.0", EntryPoint = "glBlendFuncSeparateEXT")]
            public static 
            void BlendFuncSeparate(ExtBlendFuncSeparate sfactorRGB, ExtBlendFuncSeparate dfactorRGB, ExtBlendFuncSeparate sfactorAlpha, ExtBlendFuncSeparate dfactorAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateEXT((ExtBlendFuncSeparate)sfactorRGB, (ExtBlendFuncSeparate)dfactorRGB, (ExtBlendFuncSeparate)sfactorAlpha, (ExtBlendFuncSeparate)dfactorAlpha);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferBlit", Version = "1.5", EntryPoint = "glBlitFramebufferEXT")]
            public static 
            void BlitFramebuffer(Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, ClearBufferMask mask, ExtFramebufferBlit filter)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlitFramebufferEXT((Int32)srcX0, (Int32)srcY0, (Int32)srcX1, (Int32)srcY1, (Int32)dstX0, (Int32)dstY0, (Int32)dstX1, (Int32)dstY1, (ClearBufferMask)mask, (ExtFramebufferBlit)filter);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glCheckFramebufferStatusEXT")]
            public static 
            FramebufferErrorCode CheckFramebufferStatus(FramebufferTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCheckFramebufferStatusEXT((FramebufferTarget)target);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCheckNamedFramebufferStatusEXT")]
            public static 
            ExtDirectStateAccess CheckNamedFramebufferStatus(Int32 framebuffer, FramebufferTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCheckNamedFramebufferStatusEXT((UInt32)framebuffer, (FramebufferTarget)target);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCheckNamedFramebufferStatusEXT")]
            public static 
            ExtDirectStateAccess CheckNamedFramebufferStatus(UInt32 framebuffer, FramebufferTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCheckNamedFramebufferStatusEXT((UInt32)framebuffer, (FramebufferTarget)target);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glClearColorIiEXT")]
            public static 
            void ClearColorI(Int32 red, Int32 green, Int32 blue, Int32 alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearColorIiEXT((Int32)red, (Int32)green, (Int32)blue, (Int32)alpha);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glClearColorIuiEXT")]
            public static 
            void ClearColorI(UInt32 red, UInt32 green, UInt32 blue, UInt32 alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearColorIuiEXT((UInt32)red, (UInt32)green, (UInt32)blue, (UInt32)alpha);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glClientAttribDefaultEXT")]
            public static 
            void ClientAttribDefault(ClientAttribMask mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClientAttribDefaultEXT((ClientAttribMask)mask);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glColorMaskIndexedEXT")]
            public static 
            void ColorMaskIndexed(Int32 index, bool r, bool g, bool b, bool a)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorMaskIndexedEXT((UInt32)index, (bool)r, (bool)g, (bool)b, (bool)a);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glColorMaskIndexedEXT")]
            public static 
            void ColorMaskIndexed(UInt32 index, bool r, bool g, bool b, bool a)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorMaskIndexedEXT((UInt32)index, (bool)r, (bool)g, (bool)b, (bool)a);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer<T4>(Int32 size, ColorPointerType type, Int32 stride, Int32 count, [In, Out] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer<T4>(Int32 size, ColorPointerType type, Int32 stride, Int32 count, [In, Out] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer<T4>(Int32 size, ColorPointerType type, Int32 stride, Int32 count, [In, Out] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer<T4>(Int32 size, ColorPointerType type, Int32 stride, Int32 count, [In, Out] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer(Int32 size, ColorPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtColorSubtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable<T5>(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, [In, Out] ref T5 data)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorSubTableEXT((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtColorSubtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable<T5>(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, [In, Out] T5[,,] data)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorSubTableEXT((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtColorSubtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable<T5>(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, [In, Out] T5[,] data)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorSubTableEXT((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtColorSubtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable<T5>(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, [In, Out] T5[] data)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorSubTableEXT((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtColorSubtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable(ColorTableTarget target, Int32 start, Int32 count, PixelFormat format, PixelType type, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorSubTableEXT((ColorTableTarget)target, (Int32)start, (Int32)count, (PixelFormat)format, (PixelType)type, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable<T5>(ColorTableTarget target, PixelInternalFormat internalFormat, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T5 table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableEXT((ColorTableTarget)target, (PixelInternalFormat)internalFormat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable<T5>(ColorTableTarget target, PixelInternalFormat internalFormat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,,] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableEXT((ColorTableTarget)target, (PixelInternalFormat)internalFormat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable<T5>(ColorTableTarget target, PixelInternalFormat internalFormat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableEXT((ColorTableTarget)target, (PixelInternalFormat)internalFormat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable<T5>(ColorTableTarget target, PixelInternalFormat internalFormat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableEXT((ColorTableTarget)target, (PixelInternalFormat)internalFormat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable(ColorTableTarget target, PixelInternalFormat internalFormat, Int32 width, PixelFormat format, PixelType type, IntPtr table)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorTableEXT((ColorTableTarget)target, (PixelInternalFormat)internalFormat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] ref T7 bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[,,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D<T8>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] ref T8 bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D<T8>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[,,] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D<T8>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[,] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D<T8>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] ref T9 bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[,,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] ref T7 bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[,,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] ref T9 bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[,,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D<T11>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] ref T11 bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D<T11>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[,,] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D<T11>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[,] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D<T11>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] ref T7 bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[,,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] ref T7 bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[,,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [In, Out] T7[] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] ref T8 bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[,,] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[,] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] ref T8 bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[,,] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[,] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [In, Out] T8[] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] ref T9 bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[,,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] ref T9 bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[,,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [In, Out] T9[] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] ref T7 bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[,,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] ref T7 bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[,,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, [In, Out] T7[] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] ref T9 bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[,,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] ref T9 bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[,,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, [In, Out] T9[] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] ref T11 bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[,,] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[,] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] ref T11 bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[,,] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[,] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, [In, Out] T11[] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D<T5>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T5 image)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter1DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D<T5>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,,] image)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter1DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D<T5>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,] image)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter1DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D<T5>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[] image)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter1DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, IntPtr image)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionFilter1DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)image);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D<T6>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T6 image)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D<T6>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,,] image)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D<T6>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,] image)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D<T6>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[] image)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array referenced by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr image)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)image);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionParameterfEXT")]
            public static 
            void ConvolutionParameter(ExtConvolution target, ExtConvolution pname, Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameterfEXT((ExtConvolution)target, (ExtConvolution)pname, (Single)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionParameterfvEXT")]
            public static 
            unsafe void ConvolutionParameter(ExtConvolution target, ExtConvolution pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameterfvEXT((ExtConvolution)target, (ExtConvolution)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionParameterfvEXT")]
            public static 
            void ConvolutionParameter(ExtConvolution target, ExtConvolution pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glConvolutionParameterfvEXT((ExtConvolution)target, (ExtConvolution)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionParameteriEXT")]
            public static 
            void ConvolutionParameter(ExtConvolution target, ExtConvolution pname, Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameteriEXT((ExtConvolution)target, (ExtConvolution)pname, (Int32)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionParameterivEXT")]
            public static 
            unsafe void ConvolutionParameter(ExtConvolution target, ExtConvolution pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameterivEXT((ExtConvolution)target, (ExtConvolution)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.
        /// </para>
        /// <para>
        /// 
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glConvolutionParameterivEXT")]
            public static 
            void ConvolutionParameter(ExtConvolution target, ExtConvolution pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glConvolutionParameterivEXT((ExtConvolution)target, (ExtConvolution)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Respecify a portion of a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// The starting index of the portion of the color table to be replaced.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The window coordinates of the left corner of the row of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of table entries to replace.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtColorSubtable", Version = "1.2", EntryPoint = "glCopyColorSubTableEXT")]
            public static 
            void CopyColorSubTable(ColorTableTarget target, Int32 start, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyColorSubTableEXT((ColorTableTarget)target, (Int32)start, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Copy pixels into a one-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_1D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The window space coordinates of the lower-left coordinate of the pixel array to copy.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array to copy.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glCopyConvolutionFilter1DEXT")]
            public static 
            void CopyConvolutionFilter1D(ExtConvolution target, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyConvolutionFilter1DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Copy pixels into a two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The window space coordinates of the lower-left coordinate of the pixel array to copy.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel array to copy.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the pixel array to copy.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glCopyConvolutionFilter2DEXT")]
            public static 
            void CopyConvolutionFilter2D(ExtConvolution target, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyConvolutionFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyMultiTexImage1DEXT")]
            public static 
            void CopyMultiTexImage1D(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyMultiTexImage2DEXT")]
            public static 
            void CopyMultiTexImage2D(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyMultiTexSubImage1DEXT")]
            public static 
            void CopyMultiTexSubImage1D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyMultiTexSubImage2DEXT")]
            public static 
            void CopyMultiTexSubImage2D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyMultiTexSubImage3DEXT")]
            public static 
            void CopyMultiTexSubImage3D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Copy pixels into a 1D texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format of the texture. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the left corner of the row of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. Must be 0 or 2 sup n + 2 ( border ) for some integer . The height of the texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtCopyTexture", Version = "1.0", EntryPoint = "glCopyTexImage1DEXT")]
            public static 
            void CopyTexImage1D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTexImage1DEXT((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Copy pixels into a 2D texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format of the texture. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. Must be 0 or 2 sup n + 2 ( border ) for some integer .
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. Must be 0 or 2 sup m + 2 ( border ) for some integer .
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtCopyTexture", Version = "1.0", EntryPoint = "glCopyTexImage2DEXT")]
            public static 
            void CopyTexImage2D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTexImage2DEXT((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Copy a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies the texel offset within the texture array.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the left corner of the row of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtCopyTexture", Version = "1.0", EntryPoint = "glCopyTexSubImage1DEXT")]
            public static 
            void CopyTexSubImage1D(TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTexSubImage1DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Copy a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtCopyTexture", Version = "1.0", EntryPoint = "glCopyTexSubImage2DEXT")]
            public static 
            void CopyTexSubImage2D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTexSubImage2DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Copy a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtCopyTexture", Version = "1.0", EntryPoint = "glCopyTexSubImage3DEXT")]
            public static 
            void CopyTexSubImage3D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTexSubImage3DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureImage1DEXT")]
            public static 
            void CopyTextureImage1D(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureImage1DEXT")]
            public static 
            void CopyTextureImage1D(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureImage2DEXT")]
            public static 
            void CopyTextureImage2D(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureImage2DEXT")]
            public static 
            void CopyTextureImage2D(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureSubImage1DEXT")]
            public static 
            void CopyTextureSubImage1D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureSubImage1DEXT")]
            public static 
            void CopyTextureSubImage1D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureSubImage2DEXT")]
            public static 
            void CopyTextureSubImage2D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureSubImage2DEXT")]
            public static 
            void CopyTextureSubImage2D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureSubImage3DEXT")]
            public static 
            void CopyTextureSubImage3D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glCopyTextureSubImage3DEXT")]
            public static 
            void CopyTextureSubImage3D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCullVertex", Version = "1.1", EntryPoint = "glCullParameterdvEXT")]
            public static 
            unsafe void CullParameter(ExtCullVertex pname, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCullParameterdvEXT((ExtCullVertex)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCullVertex", Version = "1.1", EntryPoint = "glCullParameterdvEXT")]
            public static 
            void CullParameter(ExtCullVertex pname, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glCullParameterdvEXT((ExtCullVertex)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCullVertex", Version = "1.1", EntryPoint = "glCullParameterdvEXT")]
            public static 
            void CullParameter(ExtCullVertex pname, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glCullParameterdvEXT((ExtCullVertex)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCullVertex", Version = "1.1", EntryPoint = "glCullParameterfvEXT")]
            public static 
            void CullParameter(ExtCullVertex pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glCullParameterfvEXT((ExtCullVertex)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCullVertex", Version = "1.1", EntryPoint = "glCullParameterfvEXT")]
            public static 
            unsafe void CullParameter(ExtCullVertex pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCullParameterfvEXT((ExtCullVertex)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCullVertex", Version = "1.1", EntryPoint = "glCullParameterfvEXT")]
            public static 
            void CullParameter(ExtCullVertex pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glCullParameterfvEXT((ExtCullVertex)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteFramebuffersEXT")]
            public static 
            unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteFramebuffersEXT((Int32)n, (UInt32*)framebuffers);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteFramebuffersEXT")]
            public static 
            void DeleteFramebuffers(Int32 n, Int32[] framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* framebuffers_ptr = framebuffers)
                    {
                        Delegates.glDeleteFramebuffersEXT((Int32)n, (UInt32*)framebuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteFramebuffersEXT")]
            public static 
            void DeleteFramebuffers(Int32 n, ref Int32 framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* framebuffers_ptr = &framebuffers)
                    {
                        Delegates.glDeleteFramebuffersEXT((Int32)n, (UInt32*)framebuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteFramebuffersEXT")]
            public static 
            void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* framebuffers_ptr = &framebuffers)
                    {
                        Delegates.glDeleteFramebuffersEXT((Int32)n, (UInt32*)framebuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteFramebuffersEXT")]
            public static 
            unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteFramebuffersEXT((Int32)n, (UInt32*)framebuffers);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteFramebuffersEXT")]
            public static 
            void DeleteFramebuffers(Int32 n, UInt32[] framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* framebuffers_ptr = framebuffers)
                    {
                        Delegates.glDeleteFramebuffersEXT((Int32)n, (UInt32*)framebuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteRenderbuffersEXT")]
            public static 
            unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteRenderbuffersEXT")]
            public static 
            void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* renderbuffers_ptr = renderbuffers)
                    {
                        Delegates.glDeleteRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteRenderbuffersEXT")]
            public static 
            void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* renderbuffers_ptr = &renderbuffers)
                    {
                        Delegates.glDeleteRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteRenderbuffersEXT")]
            public static 
            void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* renderbuffers_ptr = &renderbuffers)
                    {
                        Delegates.glDeleteRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteRenderbuffersEXT")]
            public static 
            unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glDeleteRenderbuffersEXT")]
            public static 
            void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* renderbuffers_ptr = renderbuffers)
                    {
                        Delegates.glDeleteRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glDeleteTexturesEXT")]
            public static 
            unsafe void DeleteTextures(Int32 n, Int32* textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteTexturesEXT((Int32)n, (UInt32*)textures);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glDeleteTexturesEXT")]
            public static 
            void DeleteTextures(Int32 n, Int32[] textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = textures)
                    {
                        Delegates.glDeleteTexturesEXT((Int32)n, (UInt32*)textures_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glDeleteTexturesEXT")]
            public static 
            void DeleteTextures(Int32 n, ref Int32 textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = &textures)
                    {
                        Delegates.glDeleteTexturesEXT((Int32)n, (UInt32*)textures_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glDeleteTexturesEXT")]
            public static 
            void DeleteTextures(Int32 n, ref UInt32 textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = &textures)
                    {
                        Delegates.glDeleteTexturesEXT((Int32)n, (UInt32*)textures_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glDeleteTexturesEXT")]
            public static 
            unsafe void DeleteTextures(Int32 n, UInt32* textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteTexturesEXT((Int32)n, (UInt32*)textures);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Delete named textures
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be deleted.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array of textures to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glDeleteTexturesEXT")]
            public static 
            void DeleteTextures(Int32 n, UInt32[] textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = textures)
                    {
                        Delegates.glDeleteTexturesEXT((Int32)n, (UInt32*)textures_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glDeleteVertexShaderEXT")]
            public static 
            void DeleteVertexShader(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteVertexShaderEXT((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glDeleteVertexShaderEXT")]
            public static 
            void DeleteVertexShader(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteVertexShaderEXT((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDepthBoundsTest", Version = "1.2", EntryPoint = "glDepthBoundsEXT")]
            public static 
            void DepthBounds(Double zmin, Double zmax)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDepthBoundsEXT((Double)zmin, (Double)zmax);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glDisableClientStateIndexedEXT")]
            public static 
            void DisableClientStateIndexed(EnableCap array, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableClientStateIndexedEXT((EnableCap)array, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glDisableClientStateIndexedEXT")]
            public static 
            void DisableClientStateIndexed(EnableCap array, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableClientStateIndexedEXT((EnableCap)array, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glDisableIndexedEXT")]
            public static 
            void DisableIndexed(ExtDrawBuffers2 target, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableIndexedEXT((ExtDrawBuffers2)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glDisableIndexedEXT")]
            public static 
            void DisableIndexed(ExtDrawBuffers2 target, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableIndexedEXT((ExtDrawBuffers2)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glDisableVariantClientStateEXT")]
            public static 
            void DisableVariantClientState(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableVariantClientStateEXT((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glDisableVariantClientStateEXT")]
            public static 
            void DisableVariantClientState(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableVariantClientStateEXT((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="first">
        /// <para>
        /// Specifies the starting index in the enabled arrays.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glDrawArraysEXT")]
            public static 
            void DrawArrays(BeginMode mode, Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawArraysEXT((BeginMode)mode, (Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawInstanced", Version = "2.0", EntryPoint = "glDrawArraysInstancedEXT")]
            public static 
            void DrawArraysInstanced(BeginMode mode, Int32 start, Int32 count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawArraysInstancedEXT((BeginMode)mode, (Int32)start, (Int32)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawElementsInstancedEXT((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawElementsInstancedEXT((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawElementsInstancedEXT((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced<T3>(BeginMode mode, Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawElementsInstancedEXT((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawInstanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced(BeginMode mode, Int32 count, DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawElementsInstancedEXT((BeginMode)mode, (Int32)count, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] ref T5 indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[,,] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[,] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, [In, Out] T5[] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, IntPtr indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] ref T5 indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[,,] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[,] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, [In, Out] T5[] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="start">
        /// <para>
        /// Specifies the minimum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="end">
        /// <para>
        /// Specifies the maximum array index contained in indices.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of elements to be rendered.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawRangeElements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements(BeginMode mode, UInt32 start, UInt32 end, Int32 count, DrawElementsType type, IntPtr indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementsEXT((BeginMode)mode, (UInt32)start, (UInt32)end, (Int32)count, (DrawElementsType)type, (IntPtr)indices);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of edge flags
        /// </summary>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glEdgeFlagPointerEXT")]
            public static 
            unsafe void EdgeFlagPointer(Int32 stride, Int32 count, bool* pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEdgeFlagPointerEXT((Int32)stride, (Int32)count, (bool*)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of edge flags
        /// </summary>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glEdgeFlagPointerEXT")]
            public static 
            void EdgeFlagPointer(Int32 stride, Int32 count, bool[] pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* pointer_ptr = pointer)
                    {
                        Delegates.glEdgeFlagPointerEXT((Int32)stride, (Int32)count, (bool*)pointer_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of edge flags
        /// </summary>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glEdgeFlagPointerEXT")]
            public static 
            void EdgeFlagPointer(Int32 stride, Int32 count, ref bool pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* pointer_ptr = &pointer)
                    {
                        Delegates.glEdgeFlagPointerEXT((Int32)stride, (Int32)count, (bool*)pointer_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glEnableClientStateIndexedEXT")]
            public static 
            void EnableClientStateIndexed(EnableCap array, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableClientStateIndexedEXT((EnableCap)array, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glEnableClientStateIndexedEXT")]
            public static 
            void EnableClientStateIndexed(EnableCap array, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableClientStateIndexedEXT((EnableCap)array, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glEnableIndexedEXT")]
            public static 
            void EnableIndexed(ExtDrawBuffers2 target, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableIndexedEXT((ExtDrawBuffers2)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glEnableIndexedEXT")]
            public static 
            void EnableIndexed(ExtDrawBuffers2 target, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableIndexedEXT((ExtDrawBuffers2)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glEnableVariantClientStateEXT")]
            public static 
            void EnableVariantClientState(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableVariantClientStateEXT((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glEnableVariantClientStateEXT")]
            public static 
            void EnableVariantClientState(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableVariantClientStateEXT((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glEndTransformFeedbackEXT")]
            public static 
            void EndTransformFeedback()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndTransformFeedbackEXT();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glEndVertexShaderEXT")]
            public static 
            void EndVertexShader()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndVertexShaderEXT();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glExtractComponentEXT")]
            public static 
            void ExtractComponent(Int32 res, Int32 src, Int32 num)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glExtractComponentEXT((UInt32)res, (UInt32)src, (UInt32)num);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glExtractComponentEXT")]
            public static 
            void ExtractComponent(UInt32 res, UInt32 src, UInt32 num)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glExtractComponentEXT((UInt32)res, (UInt32)src, (UInt32)num);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoorddEXT")]
            public static 
            void FogCoord(Double coord)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoorddEXT((Double)coord);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoorddvEXT")]
            public static 
            unsafe void FogCoord(Double* coord)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoorddvEXT((Double*)coord);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoordfEXT")]
            public static 
            void FogCoord(Single coord)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordfEXT((Single)coord);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoordfvEXT")]
            public static 
            unsafe void FogCoord(Single* coord)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordfvEXT((Single*)coord);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer<T2>(ExtFogCoord type, Int32 stride, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerEXT((ExtFogCoord)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer<T2>(ExtFogCoord type, Int32 stride, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerEXT((ExtFogCoord)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer<T2>(ExtFogCoord type, Int32 stride, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerEXT((ExtFogCoord)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer<T2>(ExtFogCoord type, Int32 stride, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerEXT((ExtFogCoord)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of fog coordinates
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtFogCoord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer(ExtFogCoord type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordPointerEXT((ExtFogCoord)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferDrawBufferEXT")]
            public static 
            void FramebufferDrawBuffer(Int32 framebuffer, DrawBufferMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferDrawBufferEXT((UInt32)framebuffer, (DrawBufferMode)mode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferDrawBufferEXT")]
            public static 
            void FramebufferDrawBuffer(UInt32 framebuffer, DrawBufferMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferDrawBufferEXT((UInt32)framebuffer, (DrawBufferMode)mode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            unsafe void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, DrawBufferMode* bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (DrawBufferMode*)bufs);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, DrawBufferMode[] bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (DrawBufferMode* bufs_ptr = bufs)
                    {
                        Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (DrawBufferMode*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, ref DrawBufferMode bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (DrawBufferMode* bufs_ptr = &bufs)
                    {
                        Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (DrawBufferMode*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            unsafe void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, DrawBufferMode* bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (DrawBufferMode*)bufs);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, DrawBufferMode[] bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (DrawBufferMode* bufs_ptr = bufs)
                    {
                        Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (DrawBufferMode*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, ref DrawBufferMode bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (DrawBufferMode* bufs_ptr = &bufs)
                    {
                        Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (DrawBufferMode*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferReadBufferEXT")]
            public static 
            void FramebufferReadBuffer(Int32 framebuffer, ReadBufferMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferReadBufferEXT((UInt32)framebuffer, (ReadBufferMode)mode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glFramebufferReadBufferEXT")]
            public static 
            void FramebufferReadBuffer(UInt32 framebuffer, ReadBufferMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferReadBufferEXT((UInt32)framebuffer, (ReadBufferMode)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glFramebufferRenderbufferEXT")]
            public static 
            void FramebufferRenderbuffer(FramebufferTarget target, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferRenderbufferEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glFramebufferRenderbufferEXT")]
            public static 
            void FramebufferRenderbuffer(FramebufferTarget target, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferRenderbufferEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glFramebufferTexture1DEXT")]
            public static 
            void FramebufferTexture1D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture1DEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glFramebufferTexture1DEXT")]
            public static 
            void FramebufferTexture1D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture1DEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glFramebufferTexture2DEXT")]
            public static 
            void FramebufferTexture2D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture2DEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glFramebufferTexture2DEXT")]
            public static 
            void FramebufferTexture2D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture2DEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glFramebufferTexture3DEXT")]
            public static 
            void FramebufferTexture3D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level, Int32 zoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture3DEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glFramebufferTexture3DEXT")]
            public static 
            void FramebufferTexture3D(FramebufferTarget target, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level, Int32 zoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture3DEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGeometryProgram4", Version = "2.0", EntryPoint = "glFramebufferTextureEXT")]
            public static 
            void FramebufferTexture(FramebufferTarget target, FramebufferAttachment attachment, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGeometryProgram4", Version = "2.0", EntryPoint = "glFramebufferTextureEXT")]
            public static 
            void FramebufferTexture(FramebufferTarget target, FramebufferAttachment attachment, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGeometryProgram4", Version = "2.0", EntryPoint = "glFramebufferTextureFaceEXT")]
            public static 
            void FramebufferTextureFace(FramebufferTarget target, FramebufferAttachment attachment, Int32 texture, Int32 level, TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureFaceEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGeometryProgram4", Version = "2.0", EntryPoint = "glFramebufferTextureFaceEXT")]
            public static 
            void FramebufferTextureFace(FramebufferTarget target, FramebufferAttachment attachment, UInt32 texture, Int32 level, TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureFaceEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGeometryProgram4", Version = "2.0", EntryPoint = "glFramebufferTextureLayerEXT")]
            public static 
            void FramebufferTextureLayer(FramebufferTarget target, FramebufferAttachment attachment, Int32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureLayerEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGeometryProgram4", Version = "2.0", EntryPoint = "glFramebufferTextureLayerEXT")]
            public static 
            void FramebufferTextureLayer(FramebufferTarget target, FramebufferAttachment attachment, UInt32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureLayerEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenerateMipmapEXT")]
            public static 
            void GenerateMipmap(GenerateMipmapTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenerateMipmapEXT((GenerateMipmapTarget)target);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGenerateMultiTexMipmapEXT")]
            public static 
            void GenerateMultiTexMipmap(TextureUnit texunit, TextureTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenerateMultiTexMipmapEXT((TextureUnit)texunit, (TextureTarget)target);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGenerateTextureMipmapEXT")]
            public static 
            void GenerateTextureMipmap(Int32 texture, TextureTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenerateTextureMipmapEXT((UInt32)texture, (TextureTarget)target);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGenerateTextureMipmapEXT")]
            public static 
            void GenerateTextureMipmap(UInt32 texture, TextureTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenerateTextureMipmapEXT((UInt32)texture, (TextureTarget)target);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            unsafe void GenFramebuffers(Int32 n, [Out] Int32* framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFramebuffersEXT((Int32)n, (UInt32*)framebuffers);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            void GenFramebuffers(Int32 n, [Out] Int32[] framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* framebuffers_ptr = framebuffers)
                    {
                        Delegates.glGenFramebuffersEXT((Int32)n, (UInt32*)framebuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            void GenFramebuffers(Int32 n, [Out] out Int32 framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* framebuffers_ptr = &framebuffers)
                    {
                        Delegates.glGenFramebuffersEXT((Int32)n, (UInt32*)framebuffers_ptr);
                        framebuffers = *framebuffers_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            void GenFramebuffers(Int32 n, [Out] out UInt32 framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* framebuffers_ptr = &framebuffers)
                    {
                        Delegates.glGenFramebuffersEXT((Int32)n, (UInt32*)framebuffers_ptr);
                        framebuffers = *framebuffers_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            unsafe void GenFramebuffers(Int32 n, [Out] UInt32* framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFramebuffersEXT((Int32)n, (UInt32*)framebuffers);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            void GenFramebuffers(Int32 n, [Out] UInt32[] framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* framebuffers_ptr = framebuffers)
                    {
                        Delegates.glGenFramebuffersEXT((Int32)n, (UInt32*)framebuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            unsafe void GenRenderbuffers(Int32 n, [Out] Int32* renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            void GenRenderbuffers(Int32 n, [Out] Int32[] renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* renderbuffers_ptr = renderbuffers)
                    {
                        Delegates.glGenRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            void GenRenderbuffers(Int32 n, [Out] out Int32 renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* renderbuffers_ptr = &renderbuffers)
                    {
                        Delegates.glGenRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers_ptr);
                        renderbuffers = *renderbuffers_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            void GenRenderbuffers(Int32 n, [Out] out UInt32 renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* renderbuffers_ptr = &renderbuffers)
                    {
                        Delegates.glGenRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers_ptr);
                        renderbuffers = *renderbuffers_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            unsafe void GenRenderbuffers(Int32 n, [Out] UInt32* renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            void GenRenderbuffers(Int32 n, [Out] UInt32[] renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* renderbuffers_ptr = renderbuffers)
                    {
                        Delegates.glGenRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGenSymbolsEXT")]
            public static 
            Int32 GenSymbol(ExtVertexShader datatype, ExtVertexShader storagetype, ExtVertexShader range, Int32 components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenSymbolsEXT((ExtVertexShader)datatype, (ExtVertexShader)storagetype, (ExtVertexShader)range, (UInt32)components);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGenSymbolsEXT")]
            public static 
            Int32 GenSymbol(ExtVertexShader datatype, ExtVertexShader storagetype, ExtVertexShader range, UInt32 components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenSymbolsEXT((ExtVertexShader)datatype, (ExtVertexShader)storagetype, (ExtVertexShader)range, (UInt32)components);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            unsafe void GenTextures(Int32 n, [Out] Int32* textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenTexturesEXT((Int32)n, (UInt32*)textures);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            void GenTextures(Int32 n, [Out] Int32[] textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = textures)
                    {
                        Delegates.glGenTexturesEXT((Int32)n, (UInt32*)textures_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            void GenTextures(Int32 n, [Out] out Int32 textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = &textures)
                    {
                        Delegates.glGenTexturesEXT((Int32)n, (UInt32*)textures_ptr);
                        textures = *textures_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            void GenTextures(Int32 n, [Out] out UInt32 textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = &textures)
                    {
                        Delegates.glGenTexturesEXT((Int32)n, (UInt32*)textures_ptr);
                        textures = *textures_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            unsafe void GenTextures(Int32 n, [Out] UInt32* textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenTexturesEXT((Int32)n, (UInt32*)textures);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Generate texture names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of texture names to be generated.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array in which the generated texture names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            void GenTextures(Int32 n, [Out] UInt32[] textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = textures)
                    {
                        Delegates.glGenTexturesEXT((Int32)n, (UInt32*)textures_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGenVertexShadersEXT")]
            public static 
            Int32 GenVertexShaders(Int32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenVertexShadersEXT((UInt32)range);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGenVertexShadersEXT")]
            public static 
            Int32 GenVertexShaders(UInt32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenVertexShadersEXT((UInt32)range);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            unsafe void GetBooleanIndexed(ExtDrawBuffers2 target, Int32 index, [Out] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBooleanIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            void GetBooleanIndexed(ExtDrawBuffers2 target, Int32 index, [Out] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetBooleanIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            void GetBooleanIndexed(ExtDrawBuffers2 target, Int32 index, [Out] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetBooleanIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            unsafe void GetBooleanIndexed(ExtDrawBuffers2 target, UInt32 index, [Out] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBooleanIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            void GetBooleanIndexed(ExtDrawBuffers2 target, UInt32 index, [Out] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetBooleanIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            void GetBooleanIndexed(ExtDrawBuffers2 target, UInt32 index, [Out] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetBooleanIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable<T3>(ColorTableTarget target, PixelFormat format, PixelType type, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableEXT((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable<T3>(ColorTableTarget target, PixelFormat format, PixelType type, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableEXT((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable<T3>(ColorTableTarget target, PixelFormat format, PixelType type, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableEXT((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable<T3>(ColorTableTarget target, PixelFormat format, PixelType type, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableEXT((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable(ColorTableTarget target, PixelFormat format, PixelType type, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableEXT((ColorTableTarget)target, (PixelFormat)format, (PixelType)type, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableParameterfvEXT")]
            public static 
            void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetColorTableParameterfvEXT((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableParameterfvEXT")]
            public static 
            unsafe void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableParameterfvEXT((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableParameterfvEXT")]
            public static 
            void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetColorTableParameterfvEXT((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableParameterivEXT")]
            public static 
            unsafe void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableParameterivEXT((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableParameterivEXT")]
            public static 
            void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetColorTableParameterivEXT((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPalettedTexture", Version = "1.1", EntryPoint = "glGetColorTableParameterivEXT")]
            public static 
            void GetColorTableParameter(ColorTableTarget target, GetColorTableParameterPName pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetColorTableParameterivEXT((ColorTableTarget)target, (GetColorTableParameterPName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage<T3>(TextureUnit texunit, TextureTarget target, Int32 lod, [In, Out] ref T3 img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage<T3>(TextureUnit texunit, TextureTarget target, Int32 lod, [In, Out] T3[,,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage<T3>(TextureUnit texunit, TextureTarget target, Int32 lod, [In, Out] T3[,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage<T3>(TextureUnit texunit, TextureTarget target, Int32 lod, [In, Out] T3[] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage(TextureUnit texunit, TextureTarget target, Int32 lod, [Out] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCompressedMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)lod, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(Int32 texture, TextureTarget target, Int32 lod, [In, Out] ref T3 img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(Int32 texture, TextureTarget target, Int32 lod, [In, Out] T3[,,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(Int32 texture, TextureTarget target, Int32 lod, [In, Out] T3[,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(Int32 texture, TextureTarget target, Int32 lod, [In, Out] T3[] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage(Int32 texture, TextureTarget target, Int32 lod, [Out] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(UInt32 texture, TextureTarget target, Int32 lod, [In, Out] ref T3 img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(UInt32 texture, TextureTarget target, Int32 lod, [In, Out] T3[,,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(UInt32 texture, TextureTarget target, Int32 lod, [In, Out] T3[,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(UInt32 texture, TextureTarget target, Int32 lod, [In, Out] T3[] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage(UInt32 texture, TextureTarget target, Int32 lod, [Out] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)lod, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter<T3>(ExtConvolution target, PixelFormat format, PixelType type, [In, Out] ref T3 image)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetConvolutionFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter<T3>(ExtConvolution target, PixelFormat format, PixelType type, [In, Out] T3[,,] image)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetConvolutionFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter<T3>(ExtConvolution target, PixelFormat format, PixelType type, [In, Out] T3[,] image)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetConvolutionFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter<T3>(ExtConvolution target, PixelFormat format, PixelType type, [In, Out] T3[] image)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetConvolutionFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get current 1D or 2D convolution filter kernel
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="image">
        /// <para>
        /// Pointer to storage for the output image.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr image)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetConvolutionFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)image);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterfvEXT")]
            public static 
            void GetConvolutionParameter(ExtConvolution target, ExtConvolution pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetConvolutionParameterfvEXT((ExtConvolution)target, (ExtConvolution)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterfvEXT")]
            public static 
            unsafe void GetConvolutionParameter(ExtConvolution target, ExtConvolution pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetConvolutionParameterfvEXT((ExtConvolution)target, (ExtConvolution)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterfvEXT")]
            public static 
            void GetConvolutionParameter(ExtConvolution target, ExtConvolution pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetConvolutionParameterfvEXT((ExtConvolution)target, (ExtConvolution)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterivEXT")]
            public static 
            unsafe void GetConvolutionParameter(ExtConvolution target, ExtConvolution pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetConvolutionParameterivEXT((ExtConvolution)target, (ExtConvolution)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterivEXT")]
            public static 
            void GetConvolutionParameter(ExtConvolution target, ExtConvolution pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetConvolutionParameterivEXT((ExtConvolution)target, (ExtConvolution)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get convolution parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the parameters to be retrieved.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterivEXT")]
            public static 
            void GetConvolutionParameter(ExtConvolution target, ExtConvolution pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetConvolutionParameterivEXT((ExtConvolution)target, (ExtConvolution)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            unsafe void GetDoubleIndexed(ExtDirectStateAccess target, Int32 index, [Out] Double* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetDoubleIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Double*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            void GetDoubleIndexed(ExtDirectStateAccess target, Int32 index, [Out] Double[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* data_ptr = data)
                    {
                        Delegates.glGetDoubleIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Double*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            void GetDoubleIndexed(ExtDirectStateAccess target, Int32 index, [Out] out Double data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* data_ptr = &data)
                    {
                        Delegates.glGetDoubleIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Double*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            unsafe void GetDoubleIndexed(ExtDirectStateAccess target, UInt32 index, [Out] Double* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetDoubleIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Double*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            void GetDoubleIndexed(ExtDirectStateAccess target, UInt32 index, [Out] Double[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* data_ptr = data)
                    {
                        Delegates.glGetDoubleIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Double*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            void GetDoubleIndexed(ExtDirectStateAccess target, UInt32 index, [Out] out Double data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* data_ptr = &data)
                    {
                        Delegates.glGetDoubleIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Double*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            void GetFloatIndexed(ExtDirectStateAccess target, Int32 index, [Out] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetFloatIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            unsafe void GetFloatIndexed(ExtDirectStateAccess target, Int32 index, [Out] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFloatIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            void GetFloatIndexed(ExtDirectStateAccess target, Int32 index, [Out] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetFloatIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            void GetFloatIndexed(ExtDirectStateAccess target, UInt32 index, [Out] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetFloatIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            unsafe void GetFloatIndexed(ExtDirectStateAccess target, UInt32 index, [Out] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFloatIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            void GetFloatIndexed(ExtDirectStateAccess target, UInt32 index, [Out] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetFloatIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glGetFragDataLocationEXT")]
            public static 
            Int32 GetFragDataLocation(Int32 program, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetFragDataLocationEXT((UInt32)program, (String)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glGetFragDataLocationEXT")]
            public static 
            Int32 GetFragDataLocation(UInt32 program, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetFragDataLocationEXT((UInt32)program, (String)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
            public static 
            unsafe void GetFramebufferAttachmentParameter(FramebufferTarget target, FramebufferAttachment attachment, FramebufferParameterName pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFramebufferAttachmentParameterivEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (FramebufferParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
            public static 
            void GetFramebufferAttachmentParameter(FramebufferTarget target, FramebufferAttachment attachment, FramebufferParameterName pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFramebufferAttachmentParameterivEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (FramebufferParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
            public static 
            void GetFramebufferAttachmentParameter(FramebufferTarget target, FramebufferAttachment attachment, FramebufferParameterName pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFramebufferAttachmentParameterivEXT((FramebufferTarget)target, (FramebufferAttachment)attachment, (FramebufferParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            unsafe void GetFramebufferParameter(Int32 framebuffer, ExtDirectStateAccess pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            void GetFramebufferParameter(Int32 framebuffer, ExtDirectStateAccess pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            void GetFramebufferParameter(Int32 framebuffer, ExtDirectStateAccess pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            unsafe void GetFramebufferParameter(UInt32 framebuffer, ExtDirectStateAccess pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            void GetFramebufferParameter(UInt32 framebuffer, ExtDirectStateAccess pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            void GetFramebufferParameter(UInt32 framebuffer, ExtDirectStateAccess pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram<T4>(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [In, Out] ref T4 values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetHistogramEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram<T4>(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[,,] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetHistogramEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram<T4>(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[,] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetHistogramEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram<T4>(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetHistogramEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned histogram table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [Out] IntPtr values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetHistogramEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramParameterfvEXT")]
            public static 
            void GetHistogramParameter(ExtHistogram target, ExtHistogram pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetHistogramParameterfvEXT((ExtHistogram)target, (ExtHistogram)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramParameterfvEXT")]
            public static 
            unsafe void GetHistogramParameter(ExtHistogram target, ExtHistogram pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetHistogramParameterfvEXT((ExtHistogram)target, (ExtHistogram)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramParameterfvEXT")]
            public static 
            void GetHistogramParameter(ExtHistogram target, ExtHistogram pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetHistogramParameterfvEXT((ExtHistogram)target, (ExtHistogram)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramParameterivEXT")]
            public static 
            unsafe void GetHistogramParameter(ExtHistogram target, ExtHistogram pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetHistogramParameterivEXT((ExtHistogram)target, (ExtHistogram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramParameterivEXT")]
            public static 
            void GetHistogramParameter(ExtHistogram target, ExtHistogram pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetHistogramParameterivEXT((ExtHistogram)target, (ExtHistogram)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get histogram parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetHistogramParameterivEXT")]
            public static 
            void GetHistogramParameter(ExtHistogram target, ExtHistogram pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetHistogramParameterivEXT((ExtHistogram)target, (ExtHistogram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            unsafe void GetIntegerIndexed(ExtDrawBuffers2 target, Int32 index, [Out] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetIntegerIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            void GetIntegerIndexed(ExtDrawBuffers2 target, Int32 index, [Out] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetIntegerIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            void GetIntegerIndexed(ExtDrawBuffers2 target, Int32 index, [Out] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetIntegerIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            unsafe void GetIntegerIndexed(ExtDrawBuffers2 target, UInt32 index, [Out] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetIntegerIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            void GetIntegerIndexed(ExtDrawBuffers2 target, UInt32 index, [Out] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetIntegerIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            void GetIntegerIndexed(ExtDrawBuffers2 target, UInt32 index, [Out] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetIntegerIndexedvEXT((ExtDrawBuffers2)target, (UInt32)index, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            unsafe void GetInvariantBoolean(Int32 id, ExtVertexShader value, [Out] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            void GetInvariantBoolean(Int32 id, ExtVertexShader value, [Out] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetInvariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            void GetInvariantBoolean(Int32 id, ExtVertexShader value, [Out] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetInvariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            unsafe void GetInvariantBoolean(UInt32 id, ExtVertexShader value, [Out] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            void GetInvariantBoolean(UInt32 id, ExtVertexShader value, [Out] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetInvariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            void GetInvariantBoolean(UInt32 id, ExtVertexShader value, [Out] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetInvariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            void GetInvariantFloat(Int32 id, ExtVertexShader value, [Out] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetInvariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            unsafe void GetInvariantFloat(Int32 id, ExtVertexShader value, [Out] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            void GetInvariantFloat(Int32 id, ExtVertexShader value, [Out] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetInvariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            void GetInvariantFloat(UInt32 id, ExtVertexShader value, [Out] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetInvariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            unsafe void GetInvariantFloat(UInt32 id, ExtVertexShader value, [Out] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            void GetInvariantFloat(UInt32 id, ExtVertexShader value, [Out] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetInvariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            unsafe void GetInvariantInteger(Int32 id, ExtVertexShader value, [Out] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            void GetInvariantInteger(Int32 id, ExtVertexShader value, [Out] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetInvariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            void GetInvariantInteger(Int32 id, ExtVertexShader value, [Out] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetInvariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            unsafe void GetInvariantInteger(UInt32 id, ExtVertexShader value, [Out] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            void GetInvariantInteger(UInt32 id, ExtVertexShader value, [Out] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetInvariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            void GetInvariantInteger(UInt32 id, ExtVertexShader value, [Out] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetInvariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            unsafe void GetLocalConstantBoolean(Int32 id, ExtVertexShader value, [Out] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            void GetLocalConstantBoolean(Int32 id, ExtVertexShader value, [Out] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            void GetLocalConstantBoolean(Int32 id, ExtVertexShader value, [Out] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            unsafe void GetLocalConstantBoolean(UInt32 id, ExtVertexShader value, [Out] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            void GetLocalConstantBoolean(UInt32 id, ExtVertexShader value, [Out] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            void GetLocalConstantBoolean(UInt32 id, ExtVertexShader value, [Out] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            void GetLocalConstantFloat(Int32 id, ExtVertexShader value, [Out] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            unsafe void GetLocalConstantFloat(Int32 id, ExtVertexShader value, [Out] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            void GetLocalConstantFloat(Int32 id, ExtVertexShader value, [Out] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            void GetLocalConstantFloat(UInt32 id, ExtVertexShader value, [Out] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            unsafe void GetLocalConstantFloat(UInt32 id, ExtVertexShader value, [Out] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            void GetLocalConstantFloat(UInt32 id, ExtVertexShader value, [Out] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            unsafe void GetLocalConstantInteger(Int32 id, ExtVertexShader value, [Out] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            void GetLocalConstantInteger(Int32 id, ExtVertexShader value, [Out] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            void GetLocalConstantInteger(Int32 id, ExtVertexShader value, [Out] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            unsafe void GetLocalConstantInteger(UInt32 id, ExtVertexShader value, [Out] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            void GetLocalConstantInteger(UInt32 id, ExtVertexShader value, [Out] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            void GetLocalConstantInteger(UInt32 id, ExtVertexShader value, [Out] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax<T4>(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [In, Out] ref T4 values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMinmaxEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax<T4>(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[,,] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMinmaxEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax<T4>(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[,] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMinmaxEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax<T4>(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [In, Out] T4[] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMinmaxEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minimum and maximum pixel values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="reset">
        /// <para>
        /// If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// A pointer to storage for the returned values.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax(ExtHistogram target, bool reset, PixelFormat format, PixelType type, [Out] IntPtr values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMinmaxEXT((ExtHistogram)target, (bool)reset, (PixelFormat)format, (PixelType)type, (IntPtr)values);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterfvEXT")]
            public static 
            void GetMinmaxParameter(ExtHistogram target, ExtHistogram pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMinmaxParameterfvEXT((ExtHistogram)target, (ExtHistogram)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterfvEXT")]
            public static 
            unsafe void GetMinmaxParameter(ExtHistogram target, ExtHistogram pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMinmaxParameterfvEXT((ExtHistogram)target, (ExtHistogram)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterfvEXT")]
            public static 
            void GetMinmaxParameter(ExtHistogram target, ExtHistogram pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMinmaxParameterfvEXT((ExtHistogram)target, (ExtHistogram)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterivEXT")]
            public static 
            unsafe void GetMinmaxParameter(ExtHistogram target, ExtHistogram pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMinmaxParameterivEXT((ExtHistogram)target, (ExtHistogram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterivEXT")]
            public static 
            void GetMinmaxParameter(ExtHistogram target, ExtHistogram pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMinmaxParameterivEXT((ExtHistogram)target, (ExtHistogram)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get minmax parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to storage for the retrieved parameters.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterivEXT")]
            public static 
            void GetMinmaxParameter(ExtHistogram target, ExtHistogram pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMinmaxParameterivEXT((ExtHistogram)target, (ExtHistogram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
            public static 
            void GetMultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexEnvfvEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
            public static 
            unsafe void GetMultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexEnvfvEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
            public static 
            void GetMultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexEnvfvEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
            public static 
            unsafe void GetMultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexEnvivEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
            public static 
            void GetMultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexEnvivEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
            public static 
            void GetMultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexEnvivEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
            public static 
            unsafe void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexGendvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
            public static 
            void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexGendvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
            public static 
            void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexGendvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
            public static 
            void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexGenfvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
            public static 
            unsafe void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexGenfvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
            public static 
            void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexGenfvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
            public static 
            unsafe void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexGenivEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
            public static 
            void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexGenivEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
            public static 
            void GetMultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexGenivEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage<T5>(TextureUnit texunit, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] ref T5 pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage<T5>(TextureUnit texunit, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[,,] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage<T5>(TextureUnit texunit, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[,] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage<T5>(TextureUnit texunit, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage(TextureUnit texunit, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [Out] IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexImageEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
            public static 
            void GetMultiTexLevelParameter(TextureUnit texunit, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexLevelParameterfvEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
            public static 
            unsafe void GetMultiTexLevelParameter(TextureUnit texunit, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexLevelParameterfvEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
            public static 
            void GetMultiTexLevelParameter(TextureUnit texunit, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexLevelParameterfvEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
            public static 
            unsafe void GetMultiTexLevelParameter(TextureUnit texunit, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexLevelParameterivEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
            public static 
            void GetMultiTexLevelParameter(TextureUnit texunit, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexLevelParameterivEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
            public static 
            void GetMultiTexLevelParameter(TextureUnit texunit, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexLevelParameterivEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
            public static 
            void GetMultiTexParameter(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexParameterfvEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
            public static 
            unsafe void GetMultiTexParameter(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexParameterfvEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
            public static 
            void GetMultiTexParameter(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexParameterfvEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
            public static 
            unsafe void GetMultiTexParameterI(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexParameterIivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
            public static 
            void GetMultiTexParameterI(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexParameterIivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
            public static 
            void GetMultiTexParameterI(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexParameterIivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
            public static 
            void GetMultiTexParameterI(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexParameterIuivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
            public static 
            unsafe void GetMultiTexParameterI(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexParameterIuivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
            public static 
            void GetMultiTexParameterI(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexParameterIuivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
            public static 
            unsafe void GetMultiTexParameter(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexParameterivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
            public static 
            void GetMultiTexParameter(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexParameterivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
            public static 
            void GetMultiTexParameter(TextureUnit texunit, TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexParameterivEXT((TextureUnit)texunit, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            unsafe void GetNamedBufferParameter(Int32 buffer, ExtDirectStateAccess pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            void GetNamedBufferParameter(Int32 buffer, ExtDirectStateAccess pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            void GetNamedBufferParameter(Int32 buffer, ExtDirectStateAccess pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            unsafe void GetNamedBufferParameter(UInt32 buffer, ExtDirectStateAccess pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            void GetNamedBufferParameter(UInt32 buffer, ExtDirectStateAccess pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            void GetNamedBufferParameter(UInt32 buffer, ExtDirectStateAccess pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(Int32 buffer, ExtDirectStateAccess pname, [In, Out] ref T2 @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(Int32 buffer, ExtDirectStateAccess pname, [In, Out] T2[,,] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(Int32 buffer, ExtDirectStateAccess pname, [In, Out] T2[,] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(Int32 buffer, ExtDirectStateAccess pname, [In, Out] T2[] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer(Int32 buffer, ExtDirectStateAccess pname, [Out] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(UInt32 buffer, ExtDirectStateAccess pname, [In, Out] ref T2 @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(UInt32 buffer, ExtDirectStateAccess pname, [In, Out] T2[,,] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(UInt32 buffer, ExtDirectStateAccess pname, [In, Out] T2[,] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(UInt32 buffer, ExtDirectStateAccess pname, [In, Out] T2[] @params)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer(UInt32 buffer, ExtDirectStateAccess pname, [Out] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (ExtDirectStateAccess)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData(Int32 buffer, IntPtr offset, IntPtr size, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData(UInt32 buffer, IntPtr offset, IntPtr size, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            unsafe void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, FramebufferAttachment attachment, ExtDirectStateAccess pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, FramebufferAttachment attachment, ExtDirectStateAccess pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, FramebufferAttachment attachment, ExtDirectStateAccess pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            unsafe void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, FramebufferAttachment attachment, ExtDirectStateAccess pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, FramebufferAttachment attachment, ExtDirectStateAccess pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, FramebufferAttachment attachment, ExtDirectStateAccess pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
            public static 
            unsafe void GetNamedProgram(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramivEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
            public static 
            void GetNamedProgram(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramivEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
            public static 
            unsafe void GetNamedProgram(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramivEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
            public static 
            void GetNamedProgram(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramivEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameter(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            void GetNamedProgramLocalParameter(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            void GetNamedProgramLocalParameter(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameter(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            void GetNamedProgramLocalParameter(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            void GetNamedProgramLocalParameter(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            void GetNamedProgramLocalParameter(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameter(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            void GetNamedProgramLocalParameter(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            void GetNamedProgramLocalParameter(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameter(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            void GetNamedProgramLocalParameter(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameterI(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(Int32 program, ExtDirectStateAccess target, Int32 index, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameterI(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIuivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameterI(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterIuivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(UInt32 program, ExtDirectStateAccess target, UInt32 index, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIuivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [In, Out] ref T3 @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [In, Out] T3[,,] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [In, Out] T3[,] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [In, Out] T3[] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [Out] IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [In, Out] ref T3 @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [In, Out] T3[,,] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [In, Out] T3[,] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [In, Out] T3[] @string)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess pname, [Out] IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)pname, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            unsafe void GetNamedRenderbufferParameter(Int32 renderbuffer, RenderbufferParameterName pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (RenderbufferParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            void GetNamedRenderbufferParameter(Int32 renderbuffer, RenderbufferParameterName pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (RenderbufferParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            void GetNamedRenderbufferParameter(Int32 renderbuffer, RenderbufferParameterName pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (RenderbufferParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            unsafe void GetNamedRenderbufferParameter(UInt32 renderbuffer, RenderbufferParameterName pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (RenderbufferParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            void GetNamedRenderbufferParameter(UInt32 renderbuffer, RenderbufferParameterName pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (RenderbufferParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            void GetNamedRenderbufferParameter(UInt32 renderbuffer, RenderbufferParameterName pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (RenderbufferParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(ExtDirectStateAccess target, Int32 index, [In, Out] ref T2 data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(ExtDirectStateAccess target, Int32 index, [In, Out] T2[,,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(ExtDirectStateAccess target, Int32 index, [In, Out] T2[,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(ExtDirectStateAccess target, Int32 index, [In, Out] T2[] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed(ExtDirectStateAccess target, Int32 index, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(ExtDirectStateAccess target, UInt32 index, [In, Out] ref T2 data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(ExtDirectStateAccess target, UInt32 index, [In, Out] T2[,,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(ExtDirectStateAccess target, UInt32 index, [In, Out] T2[,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(ExtDirectStateAccess target, UInt32 index, [In, Out] T2[] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed(ExtDirectStateAccess target, UInt32 index, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPointerIndexedvEXT((ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer<T1>(GetPointervPName pname, [In, Out] ref T1 @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointervEXT((GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer<T1>(GetPointervPName pname, [In, Out] T1[,,] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointervEXT((GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer<T1>(GetPointervPName pname, [In, Out] T1[,] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointervEXT((GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer<T1>(GetPointervPName pname, [In, Out] T1[] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointervEXT((GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer(GetPointervPName pname, [Out] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPointervEXT((GetPointervPName)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            unsafe void GetQueryObjecti64(Int32 id, ExtTimerQuery pname, [Out] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjecti64vEXT((UInt32)id, (ExtTimerQuery)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            void GetQueryObjecti64(Int32 id, ExtTimerQuery pname, [Out] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjecti64vEXT((UInt32)id, (ExtTimerQuery)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            void GetQueryObjecti64(Int32 id, ExtTimerQuery pname, [Out] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjecti64vEXT((UInt32)id, (ExtTimerQuery)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            unsafe void GetQueryObjecti64(UInt32 id, ExtTimerQuery pname, [Out] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjecti64vEXT((UInt32)id, (ExtTimerQuery)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            void GetQueryObjecti64(UInt32 id, ExtTimerQuery pname, [Out] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjecti64vEXT((UInt32)id, (ExtTimerQuery)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            void GetQueryObjecti64(UInt32 id, ExtTimerQuery pname, [Out] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjecti64vEXT((UInt32)id, (ExtTimerQuery)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            unsafe void GetQueryObjectui64(Int32 id, ExtTimerQuery pname, [Out] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectui64vEXT((UInt32)id, (ExtTimerQuery)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            void GetQueryObjectui64(Int32 id, ExtTimerQuery pname, [Out] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectui64vEXT((UInt32)id, (ExtTimerQuery)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            void GetQueryObjectui64(Int32 id, ExtTimerQuery pname, [Out] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectui64vEXT((UInt32)id, (ExtTimerQuery)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            void GetQueryObjectui64(UInt32 id, ExtTimerQuery pname, [Out] out UInt64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectui64vEXT((UInt32)id, (ExtTimerQuery)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            unsafe void GetQueryObjectui64(UInt32 id, ExtTimerQuery pname, [Out] UInt64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectui64vEXT((UInt32)id, (ExtTimerQuery)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTimerQuery", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            void GetQueryObjectui64(UInt32 id, ExtTimerQuery pname, [Out] UInt64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectui64vEXT((UInt32)id, (ExtTimerQuery)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGetRenderbufferParameterivEXT")]
            public static 
            unsafe void GetRenderbufferParameter(RenderbufferTarget target, RenderbufferParameterName pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetRenderbufferParameterivEXT((RenderbufferTarget)target, (RenderbufferParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGetRenderbufferParameterivEXT")]
            public static 
            void GetRenderbufferParameter(RenderbufferTarget target, RenderbufferParameterName pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetRenderbufferParameterivEXT((RenderbufferTarget)target, (RenderbufferParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glGetRenderbufferParameterivEXT")]
            public static 
            void GetRenderbufferParameter(RenderbufferTarget target, RenderbufferParameterName pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetRenderbufferParameterivEXT((RenderbufferTarget)target, (RenderbufferParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T3,T4,T5>(ExtConvolution target, PixelFormat format, PixelType type, [In, Out] ref T3 row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
                where T3 : struct
                where T4 : struct
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T3,T4,T5>(ExtConvolution target, PixelFormat format, PixelType type, [In, Out] T3[,,] row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
                where T3 : struct
                where T4 : struct
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T3,T4,T5>(ExtConvolution target, PixelFormat format, PixelType type, [In, Out] T3[,] row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
                where T3 : struct
                where T4 : struct
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T3,T4,T5>(ExtConvolution target, PixelFormat format, PixelType type, [In, Out] T3[] row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
                where T3 : struct
                where T4 : struct
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T4,T5>(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [In, Out] ref T4 column, [In, Out] T5[,,] span)
                where T4 : struct
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T4,T5>(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [In, Out] T4[,,] column, [In, Out] T5[,,] span)
                where T4 : struct
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T4,T5>(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [In, Out] T4[,] column, [In, Out] T5[,,] span)
                where T4 : struct
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T4,T5>(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [In, Out] T4[] column, [In, Out] T5[,,] span)
                where T4 : struct
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T5>(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [In, Out] ref T5 span)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T5>(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [In, Out] T5[,,] span)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T5>(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [In, Out] T5[,] span)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T5>(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [In, Out] T5[] span)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get separable convolution filter kernel images
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The separable filter to be retrieved. Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to storage for the row filter image.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to storage for the column filter image.
        /// </para>
        /// </param>
        /// <param name="span">
        /// <para>
        /// Pointer to storage for the span filter image (currently unused).
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter(ExtConvolution target, PixelFormat format, PixelType type, [Out] IntPtr row, [Out] IntPtr column, [Out] IntPtr span)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetSeparableFilterEXT((ExtConvolution)target, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glGetTexParameterIivEXT")]
            public static 
            unsafe void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexParameterIivEXT((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glGetTexParameterIivEXT")]
            public static 
            void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTexParameterIivEXT((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glGetTexParameterIivEXT")]
            public static 
            void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTexParameterIivEXT((TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glGetTexParameterIuivEXT")]
            public static 
            void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetTexParameterIuivEXT((TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glGetTexParameterIuivEXT")]
            public static 
            unsafe void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexParameterIuivEXT((TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glGetTexParameterIuivEXT")]
            public static 
            void GetTexParameterI(TextureTarget target, GetTextureParameter pname, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetTexParameterIuivEXT((TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(Int32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] ref T5 pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(Int32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[,,] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(Int32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[,] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(Int32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage(Int32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [Out] IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(UInt32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] ref T5 pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(UInt32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[,,] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(UInt32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[,] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(UInt32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [In, Out] T5[] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage(UInt32 texture, TextureTarget target, Int32 level, PixelFormat format, PixelType type, [Out] IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureImageEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            void GetTextureLevelParameter(Int32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            unsafe void GetTextureLevelParameter(Int32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            void GetTextureLevelParameter(Int32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            void GetTextureLevelParameter(UInt32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            unsafe void GetTextureLevelParameter(UInt32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            void GetTextureLevelParameter(UInt32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            unsafe void GetTextureLevelParameter(Int32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            void GetTextureLevelParameter(Int32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            void GetTextureLevelParameter(Int32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            unsafe void GetTextureLevelParameter(UInt32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            void GetTextureLevelParameter(UInt32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            void GetTextureLevelParameter(UInt32 texture, TextureTarget target, Int32 level, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            void GetTextureParameter(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            unsafe void GetTextureParameter(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            void GetTextureParameter(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            void GetTextureParameter(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            unsafe void GetTextureParameter(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            void GetTextureParameter(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            unsafe void GetTextureParameterI(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            void GetTextureParameterI(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            void GetTextureParameterI(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            unsafe void GetTextureParameterI(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            void GetTextureParameterI(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            void GetTextureParameterI(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
            public static 
            void GetTextureParameterI(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterIuivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
            public static 
            unsafe void GetTextureParameterI(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterIuivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
            public static 
            void GetTextureParameterI(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterIuivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            unsafe void GetTextureParameter(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            void GetTextureParameter(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            void GetTextureParameter(Int32 texture, TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            unsafe void GetTextureParameter(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            void GetTextureParameter(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            void GetTextureParameter(UInt32 texture, TextureTarget target, GetTextureParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
            public static 
            unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] ExtTransformFeedback* type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTransformFeedbackVaryingEXT((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (ExtTransformFeedback*)type, (System.Text.StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
            public static 
            void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out ExtTransformFeedback type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (ExtTransformFeedback* type_ptr = &type)
                    {
                        Delegates.glGetTransformFeedbackVaryingEXT((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (ExtTransformFeedback*)type_ptr, (System.Text.StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
            public static 
            unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] ExtTransformFeedback* type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTransformFeedbackVaryingEXT((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (ExtTransformFeedback*)type, (System.Text.StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
            public static 
            void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out ExtTransformFeedback type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (ExtTransformFeedback* type_ptr = &type)
                    {
                        Delegates.glGetTransformFeedbackVaryingEXT((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (ExtTransformFeedback*)type_ptr, (System.Text.StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtBindableUniform", Version = "2.0", EntryPoint = "glGetUniformBufferSizeEXT")]
            public static 
            Int32 GetUniformBufferSize(Int32 program, Int32 location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetUniformBufferSizeEXT((UInt32)program, (Int32)location);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtBindableUniform", Version = "2.0", EntryPoint = "glGetUniformBufferSizeEXT")]
            public static 
            Int32 GetUniformBufferSize(UInt32 program, Int32 location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetUniformBufferSizeEXT((UInt32)program, (Int32)location);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtBindableUniform", Version = "2.0", EntryPoint = "glGetUniformOffsetEXT")]
            public static 
            IntPtr GetUniformOffset(Int32 program, Int32 location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetUniformOffsetEXT((UInt32)program, (Int32)location);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtBindableUniform", Version = "2.0", EntryPoint = "glGetUniformOffsetEXT")]
            public static 
            IntPtr GetUniformOffset(UInt32 program, Int32 location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetUniformOffsetEXT((UInt32)program, (Int32)location);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            unsafe void GetUniform(Int32 program, Int32 location, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformuivEXT((UInt32)program, (Int32)location, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            void GetUniform(Int32 program, Int32 location, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetUniformuivEXT((UInt32)program, (Int32)location, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            void GetUniform(Int32 program, Int32 location, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformuivEXT((UInt32)program, (Int32)location, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            void GetUniform(UInt32 program, Int32 location, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformuivEXT((UInt32)program, (Int32)location, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            unsafe void GetUniform(UInt32 program, Int32 location, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformuivEXT((UInt32)program, (Int32)location, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns the value of a uniform variable
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be queried.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the value of the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            void GetUniform(UInt32 program, Int32 location, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetUniformuivEXT((UInt32)program, (Int32)location, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            unsafe void GetVariantBoolean(Int32 id, ExtVertexShader value, [Out] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            void GetVariantBoolean(Int32 id, ExtVertexShader value, [Out] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetVariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            void GetVariantBoolean(Int32 id, ExtVertexShader value, [Out] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetVariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            unsafe void GetVariantBoolean(UInt32 id, ExtVertexShader value, [Out] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            void GetVariantBoolean(UInt32 id, ExtVertexShader value, [Out] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetVariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            void GetVariantBoolean(UInt32 id, ExtVertexShader value, [Out] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetVariantBooleanvEXT((UInt32)id, (ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            void GetVariantFloat(Int32 id, ExtVertexShader value, [Out] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetVariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            unsafe void GetVariantFloat(Int32 id, ExtVertexShader value, [Out] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            void GetVariantFloat(Int32 id, ExtVertexShader value, [Out] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetVariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            void GetVariantFloat(UInt32 id, ExtVertexShader value, [Out] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetVariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            unsafe void GetVariantFloat(UInt32 id, ExtVertexShader value, [Out] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            void GetVariantFloat(UInt32 id, ExtVertexShader value, [Out] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetVariantFloatvEXT((UInt32)id, (ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            unsafe void GetVariantInteger(Int32 id, ExtVertexShader value, [Out] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            void GetVariantInteger(Int32 id, ExtVertexShader value, [Out] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetVariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            void GetVariantInteger(Int32 id, ExtVertexShader value, [Out] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetVariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            unsafe void GetVariantInteger(UInt32 id, ExtVertexShader value, [Out] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            void GetVariantInteger(UInt32 id, ExtVertexShader value, [Out] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetVariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            void GetVariantInteger(UInt32 id, ExtVertexShader value, [Out] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetVariantIntegervEXT((UInt32)id, (ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(Int32 id, ExtVertexShader value, [In, Out] ref T2 data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(Int32 id, ExtVertexShader value, [In, Out] T2[,,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(Int32 id, ExtVertexShader value, [In, Out] T2[,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(Int32 id, ExtVertexShader value, [In, Out] T2[] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer(Int32 id, ExtVertexShader value, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(UInt32 id, ExtVertexShader value, [In, Out] ref T2 data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(UInt32 id, ExtVertexShader value, [In, Out] T2[,,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(UInt32 id, ExtVertexShader value, [In, Out] T2[,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(UInt32 id, ExtVertexShader value, [In, Out] T2[] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer(UInt32 id, ExtVertexShader value, [Out] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantPointervEXT((UInt32)id, (ExtVertexShader)value, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
            public static 
            unsafe void GetVertexAttribI(Int32 index, NvVertexProgram4 pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribIivEXT((UInt32)index, (NvVertexProgram4)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
            public static 
            void GetVertexAttribI(Int32 index, NvVertexProgram4 pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribIivEXT((UInt32)index, (NvVertexProgram4)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
            public static 
            unsafe void GetVertexAttribI(UInt32 index, NvVertexProgram4 pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribIivEXT((UInt32)index, (NvVertexProgram4)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
            public static 
            void GetVertexAttribI(UInt32 index, NvVertexProgram4 pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribIivEXT((UInt32)index, (NvVertexProgram4)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glGetVertexAttribIuivEXT")]
            public static 
            void GetVertexAttribI(UInt32 index, NvVertexProgram4 pname, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribIuivEXT((UInt32)index, (NvVertexProgram4)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glGetVertexAttribIuivEXT")]
            public static 
            unsafe void GetVertexAttribI(UInt32 index, NvVertexProgram4 pname, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribIuivEXT((UInt32)index, (NvVertexProgram4)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define histogram table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The histogram whose parameters are to be set. Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the histogram table. Must be a power of 2.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The format of entries in the histogram table. Must be one of GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="sink">
        /// <para>
        /// If GL_TRUE, pixels will be consumed by the histogramming process and no drawing or texture loading will take place. If GL_FALSE, pixels will proceed to the minmax process after histogramming.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glHistogramEXT")]
            public static 
            void Histogram(ExtHistogram target, Int32 width, PixelInternalFormat internalformat, bool sink)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glHistogramEXT((ExtHistogram)target, (Int32)width, (PixelInternalFormat)internalformat, (bool)sink);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtIndexFunc", Version = "1.1", EntryPoint = "glIndexFuncEXT")]
            public static 
            void IndexFunc(ExtIndexFunc func, Single @ref)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexFuncEXT((ExtIndexFunc)func, (Single)@ref);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtIndexMaterial", Version = "1.1", EntryPoint = "glIndexMaterialEXT")]
            public static 
            void IndexMaterial(MaterialFace face, ExtIndexMaterial mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexMaterialEXT((MaterialFace)face, (ExtIndexMaterial)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer<T3>(IndexPointerType type, Int32 stride, Int32 count, [In, Out] ref T3 pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerEXT((IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer<T3>(IndexPointerType type, Int32 stride, Int32 count, [In, Out] T3[,,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerEXT((IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer<T3>(IndexPointerType type, Int32 stride, Int32 count, [In, Out] T3[,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerEXT((IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer<T3>(IndexPointerType type, Int32 stride, Int32 count, [In, Out] T3[] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerEXT((IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of color indexes
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color index in the array. Symbolic constants GL_UNSIGNED_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first index in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer(IndexPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexPointerEXT((IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glInsertComponentEXT")]
            public static 
            void InsertComponent(Int32 res, Int32 src, Int32 num)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glInsertComponentEXT((UInt32)res, (UInt32)src, (UInt32)num);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glInsertComponentEXT")]
            public static 
            void InsertComponent(UInt32 res, UInt32 src, UInt32 num)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glInsertComponentEXT((UInt32)res, (UInt32)src, (UInt32)num);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glIsEnabledIndexedEXT")]
            public static 
            bool IsEnabledIndexed(ExtDrawBuffers2 target, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsEnabledIndexedEXT((ExtDrawBuffers2)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDrawBuffers2", Version = "2.0", EntryPoint = "glIsEnabledIndexedEXT")]
            public static 
            bool IsEnabledIndexed(ExtDrawBuffers2 target, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsEnabledIndexedEXT((ExtDrawBuffers2)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glIsFramebufferEXT")]
            public static 
            bool IsFramebuffer(Int32 framebuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsFramebufferEXT((UInt32)framebuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glIsFramebufferEXT")]
            public static 
            bool IsFramebuffer(UInt32 framebuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsFramebufferEXT((UInt32)framebuffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glIsRenderbufferEXT")]
            public static 
            bool IsRenderbuffer(Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsRenderbufferEXT((UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glIsRenderbufferEXT")]
            public static 
            bool IsRenderbuffer(UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsRenderbufferEXT((UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if a name corresponds to a texture
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies a value that may be the name of a texture.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glIsTextureEXT")]
            public static 
            bool IsTexture(Int32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsTextureEXT((UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determine if a name corresponds to a texture
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies a value that may be the name of a texture.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glIsTextureEXT")]
            public static 
            bool IsTexture(UInt32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsTextureEXT((UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glIsVariantEnabledEXT")]
            public static 
            bool IsVariantEnabled(Int32 id, ExtVertexShader cap)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVariantEnabledEXT((UInt32)id, (ExtVertexShader)cap);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glIsVariantEnabledEXT")]
            public static 
            bool IsVariantEnabled(UInt32 id, ExtVertexShader cap)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVariantEnabledEXT((UInt32)id, (ExtVertexShader)cap);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCompiledVertexArray", Version = "1.1", EntryPoint = "glLockArraysEXT")]
            public static 
            void LockArrays(Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLockArraysEXT((Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMapNamedBufferEXT")]
            public static 
            unsafe IntPtr MapNamedBuffer(Int32 buffer, ExtDirectStateAccess access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapNamedBufferEXT((UInt32)buffer, (ExtDirectStateAccess)access);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMapNamedBufferEXT")]
            public static 
            unsafe IntPtr MapNamedBuffer(UInt32 buffer, ExtDirectStateAccess access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapNamedBufferEXT((UInt32)buffer, (ExtDirectStateAccess)access);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixFrustumEXT")]
            public static 
            void MatrixFrustum(MatrixMode mode, Double left, Double right, Double bottom, Double top, Double zNear, Double zFar)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixFrustumEXT((MatrixMode)mode, (Double)left, (Double)right, (Double)bottom, (Double)top, (Double)zNear, (Double)zFar);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoaddEXT")]
            public static 
            unsafe void MatrixLoad(MatrixMode mode, Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoaddEXT((MatrixMode)mode, (Double*)m);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoaddEXT")]
            public static 
            void MatrixLoad(MatrixMode mode, Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMatrixLoaddEXT((MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoaddEXT")]
            public static 
            void MatrixLoad(MatrixMode mode, ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMatrixLoaddEXT((MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadfEXT")]
            public static 
            void MatrixLoad(MatrixMode mode, ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMatrixLoadfEXT((MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadfEXT")]
            public static 
            unsafe void MatrixLoad(MatrixMode mode, Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoadfEXT((MatrixMode)mode, (Single*)m);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadfEXT")]
            public static 
            void MatrixLoad(MatrixMode mode, Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMatrixLoadfEXT((MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadIdentityEXT")]
            public static 
            void MatrixLoadIdentity(MatrixMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoadIdentityEXT((MatrixMode)mode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
            public static 
            unsafe void MatrixLoadTranspose(MatrixMode mode, Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoadTransposedEXT((MatrixMode)mode, (Double*)m);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
            public static 
            void MatrixLoadTranspose(MatrixMode mode, Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMatrixLoadTransposedEXT((MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
            public static 
            void MatrixLoadTranspose(MatrixMode mode, ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMatrixLoadTransposedEXT((MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
            public static 
            void MatrixLoadTranspose(MatrixMode mode, ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMatrixLoadTransposefEXT((MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
            public static 
            unsafe void MatrixLoadTranspose(MatrixMode mode, Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoadTransposefEXT((MatrixMode)mode, (Single*)m);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
            public static 
            void MatrixLoadTranspose(MatrixMode mode, Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMatrixLoadTransposefEXT((MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultdEXT")]
            public static 
            unsafe void MatrixMult(MatrixMode mode, Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixMultdEXT((MatrixMode)mode, (Double*)m);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultdEXT")]
            public static 
            void MatrixMult(MatrixMode mode, Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMatrixMultdEXT((MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultdEXT")]
            public static 
            void MatrixMult(MatrixMode mode, ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMatrixMultdEXT((MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultfEXT")]
            public static 
            void MatrixMult(MatrixMode mode, ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMatrixMultfEXT((MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultfEXT")]
            public static 
            unsafe void MatrixMult(MatrixMode mode, Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixMultfEXT((MatrixMode)mode, (Single*)m);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultfEXT")]
            public static 
            void MatrixMult(MatrixMode mode, Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMatrixMultfEXT((MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
            public static 
            unsafe void MatrixMultTranspose(MatrixMode mode, Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixMultTransposedEXT((MatrixMode)mode, (Double*)m);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
            public static 
            void MatrixMultTranspose(MatrixMode mode, Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMatrixMultTransposedEXT((MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
            public static 
            void MatrixMultTranspose(MatrixMode mode, ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMatrixMultTransposedEXT((MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
            public static 
            void MatrixMultTranspose(MatrixMode mode, ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMatrixMultTransposefEXT((MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
            public static 
            unsafe void MatrixMultTranspose(MatrixMode mode, Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixMultTransposefEXT((MatrixMode)mode, (Single*)m);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
            public static 
            void MatrixMultTranspose(MatrixMode mode, Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMatrixMultTransposefEXT((MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixOrthoEXT")]
            public static 
            void MatrixOrtho(MatrixMode mode, Double left, Double right, Double bottom, Double top, Double zNear, Double zFar)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixOrthoEXT((MatrixMode)mode, (Double)left, (Double)right, (Double)bottom, (Double)top, (Double)zNear, (Double)zFar);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixPopEXT")]
            public static 
            void MatrixPop(MatrixMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixPopEXT((MatrixMode)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixPushEXT")]
            public static 
            void MatrixPush(MatrixMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixPushEXT((MatrixMode)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixRotatedEXT")]
            public static 
            void MatrixRotate(MatrixMode mode, Double angle, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixRotatedEXT((MatrixMode)mode, (Double)angle, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixRotatefEXT")]
            public static 
            void MatrixRotate(MatrixMode mode, Single angle, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixRotatefEXT((MatrixMode)mode, (Single)angle, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixScaledEXT")]
            public static 
            void MatrixScale(MatrixMode mode, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixScaledEXT((MatrixMode)mode, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixScalefEXT")]
            public static 
            void MatrixScale(MatrixMode mode, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixScalefEXT((MatrixMode)mode, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixTranslatedEXT")]
            public static 
            void MatrixTranslate(MatrixMode mode, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixTranslatedEXT((MatrixMode)mode, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMatrixTranslatefEXT")]
            public static 
            void MatrixTranslate(MatrixMode mode, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixTranslatefEXT((MatrixMode)mode, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define minmax table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The minmax table whose parameters are to be set. Must be GL_MINMAX.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The format of entries in the minmax table. Must be one of GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="sink">
        /// <para>
        /// If GL_TRUE, pixels will be consumed by the minmax process and no drawing or texture loading will take place. If GL_FALSE, pixels will proceed to the final conversion process after minmax.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glMinmaxEXT")]
            public static 
            void Minmax(ExtHistogram target, PixelInternalFormat internalformat, bool sink)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMinmaxEXT((ExtHistogram)target, (PixelInternalFormat)internalformat, (bool)sink);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="first">
        /// <para>
        /// Points to an array of starting indices in the enabled arrays.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the number of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawArraysEXT")]
            public static 
            unsafe void MultiDrawArrays(BeginMode mode, [Out] Int32* first, [Out] Int32* count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawArraysEXT((BeginMode)mode, (Int32*)first, (Int32*)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="first">
        /// <para>
        /// Points to an array of starting indices in the enabled arrays.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the number of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawArraysEXT")]
            public static 
            void MultiDrawArrays(BeginMode mode, [Out] Int32[] first, [Out] Int32[] count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* first_ptr = first)
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiDrawArraysEXT((BeginMode)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives from array data
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="first">
        /// <para>
        /// Points to an array of starting indices in the enabled arrays.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the number of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawArraysEXT")]
            public static 
            void MultiDrawArrays(BeginMode mode, [Out] out Int32 first, [Out] out Int32 count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* first_ptr = &first)
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiDrawArraysEXT((BeginMode)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                        first = *first_ptr;
                        count = *count_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements<T3>(BeginMode mode, Int32* count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements<T3>(BeginMode mode, Int32* count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements<T3>(BeginMode mode, Int32* count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements<T3>(BeginMode mode, Int32* count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements(BeginMode mode, Int32* count, DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(BeginMode mode, Int32[] count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(BeginMode mode, Int32[] count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(BeginMode mode, Int32[] count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(BeginMode mode, Int32[] count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements(BeginMode mode, Int32[] count, DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Render multiple sets of primitives by specifying indices of array data elements
        /// </summary>
        /// <param name="mode">
        /// <para>
        /// Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Points to an array of the elements counts.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies a pointer to the location where the indices are stored.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the size of the count array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtMultiDrawArrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements(BeginMode mode, ref Int32 count, DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiDrawElementsEXT((BeginMode)mode, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexBufferEXT")]
            public static 
            void MultiTexBuffer(TextureUnit texunit, TextureTarget target, ExtDirectStateAccess internalformat, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexBufferEXT((TextureUnit)texunit, (TextureTarget)target, (ExtDirectStateAccess)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexBufferEXT")]
            public static 
            void MultiTexBuffer(TextureUnit texunit, TextureTarget target, ExtDirectStateAccess internalformat, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexBufferEXT((TextureUnit)texunit, (TextureTarget)target, (ExtDirectStateAccess)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer<T4>(TextureUnit texunit, Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexCoordPointerEXT((TextureUnit)texunit, (Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer<T4>(TextureUnit texunit, Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexCoordPointerEXT((TextureUnit)texunit, (Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer<T4>(TextureUnit texunit, Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexCoordPointerEXT((TextureUnit)texunit, (Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer<T4>(TextureUnit texunit, Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexCoordPointerEXT((TextureUnit)texunit, (Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer(TextureUnit texunit, Int32 size, TexCoordPointerType type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoordPointerEXT((TextureUnit)texunit, (Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexEnvfEXT")]
            public static 
            void MultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexEnvfEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexEnvfvEXT")]
            public static 
            unsafe void MultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexEnvfvEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexEnvfvEXT")]
            public static 
            void MultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glMultiTexEnvfvEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexEnviEXT")]
            public static 
            void MultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexEnviEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexEnvivEXT")]
            public static 
            unsafe void MultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexEnvivEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexEnvivEXT")]
            public static 
            void MultiTexEnv(TextureUnit texunit, TextureEnvTarget target, TextureEnvParameter pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexEnvivEXT((TextureUnit)texunit, (TextureEnvTarget)target, (TextureEnvParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGendEXT")]
            public static 
            void MultiTexGend(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Double param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGendEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Double)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGendvEXT")]
            public static 
            unsafe void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGendvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGendvEXT")]
            public static 
            void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glMultiTexGendvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGendvEXT")]
            public static 
            void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glMultiTexGendvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGenfEXT")]
            public static 
            void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGenfEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGenfvEXT")]
            public static 
            unsafe void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGenfvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGenfvEXT")]
            public static 
            void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glMultiTexGenfvEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGeniEXT")]
            public static 
            void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGeniEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGenivEXT")]
            public static 
            unsafe void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGenivEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexGenivEXT")]
            public static 
            void MultiTexGen(TextureUnit texunit, TextureCoordName coord, TextureGenParameter pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexGenivEXT((TextureUnit)texunit, (TextureCoordName)coord, (TextureGenParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D<T8>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T8 pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D<T8>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[,,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D<T8>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D<T8>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T9 pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D<T10>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T10 pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D<T10>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[,,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D<T10>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D<T10>(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D(TextureUnit texunit, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterfEXT")]
            public static 
            void MultiTexParameter(TextureUnit texunit, TextureTarget target, TextureParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterfEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterfvEXT")]
            public static 
            unsafe void MultiTexParameter(TextureUnit texunit, TextureTarget target, TextureParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterfvEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterfvEXT")]
            public static 
            void MultiTexParameter(TextureUnit texunit, TextureTarget target, TextureParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glMultiTexParameterfvEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameteriEXT")]
            public static 
            void MultiTexParameter(TextureUnit texunit, TextureTarget target, TextureParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameteriEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
            public static 
            unsafe void MultiTexParameterI(TextureUnit texunit, TextureTarget target, TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterIivEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
            public static 
            void MultiTexParameterI(TextureUnit texunit, TextureTarget target, TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexParameterIivEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
            public static 
            void MultiTexParameterI(TextureUnit texunit, TextureTarget target, TextureParameterName pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glMultiTexParameterIivEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
            public static 
            void MultiTexParameterI(TextureUnit texunit, TextureTarget target, TextureParameterName pname, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glMultiTexParameterIuivEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
            public static 
            unsafe void MultiTexParameterI(TextureUnit texunit, TextureTarget target, TextureParameterName pname, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterIuivEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
            public static 
            void MultiTexParameterI(TextureUnit texunit, TextureTarget target, TextureParameterName pname, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexParameterIuivEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterivEXT")]
            public static 
            unsafe void MultiTexParameter(TextureUnit texunit, TextureTarget target, TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterivEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexParameterivEXT")]
            public static 
            void MultiTexParameter(TextureUnit texunit, TextureTarget target, TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexParameterivEXT((TextureUnit)texunit, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexRenderbufferEXT")]
            public static 
            void MultiTexRenderbuffer(TextureUnit texunit, TextureTarget target, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexRenderbufferEXT((TextureUnit)texunit, (TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexRenderbufferEXT")]
            public static 
            void MultiTexRenderbuffer(TextureUnit texunit, TextureTarget target, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexRenderbufferEXT((TextureUnit)texunit, (TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T7 pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[,,] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[,] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D<T7>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexSubImage1DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T9 pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D<T9>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexSubImage2DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D<T11>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] ref T11 pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D<T11>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[,,] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D<T11>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[,] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D<T11>(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D(TextureUnit texunit, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexSubImage3DEXT((TextureUnit)texunit, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(Int32 buffer, IntPtr size, [In, Out] ref T2 data, ExtDirectStateAccess usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(Int32 buffer, IntPtr size, [In, Out] T2[,,] data, ExtDirectStateAccess usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(Int32 buffer, IntPtr size, [In, Out] T2[,] data, ExtDirectStateAccess usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(Int32 buffer, IntPtr size, [In, Out] T2[] data, ExtDirectStateAccess usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData(Int32 buffer, IntPtr size, IntPtr data, ExtDirectStateAccess usage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data, (ExtDirectStateAccess)usage);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [In, Out] ref T2 data, ExtDirectStateAccess usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [In, Out] T2[,,] data, ExtDirectStateAccess usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [In, Out] T2[,] data, ExtDirectStateAccess usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [In, Out] T2[] data, ExtDirectStateAccess usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData(UInt32 buffer, IntPtr size, IntPtr data, ExtDirectStateAccess usage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data, (ExtDirectStateAccess)usage);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData(Int32 buffer, IntPtr offset, IntPtr size, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [In, Out] ref T3 data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [In, Out] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData(UInt32 buffer, IntPtr offset, IntPtr size, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferRenderbufferEXT")]
            public static 
            void NamedFramebufferRenderbuffer(Int32 framebuffer, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferRenderbufferEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferRenderbufferEXT")]
            public static 
            void NamedFramebufferRenderbuffer(UInt32 framebuffer, FramebufferAttachment attachment, RenderbufferTarget renderbuffertarget, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferRenderbufferEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTexture1DEXT")]
            public static 
            void NamedFramebufferTexture1D(Int32 framebuffer, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture1DEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTexture1DEXT")]
            public static 
            void NamedFramebufferTexture1D(UInt32 framebuffer, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture1DEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTexture2DEXT")]
            public static 
            void NamedFramebufferTexture2D(Int32 framebuffer, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture2DEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTexture2DEXT")]
            public static 
            void NamedFramebufferTexture2D(UInt32 framebuffer, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture2DEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTexture3DEXT")]
            public static 
            void NamedFramebufferTexture3D(Int32 framebuffer, FramebufferAttachment attachment, TextureTarget textarget, Int32 texture, Int32 level, Int32 zoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture3DEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTexture3DEXT")]
            public static 
            void NamedFramebufferTexture3D(UInt32 framebuffer, FramebufferAttachment attachment, TextureTarget textarget, UInt32 texture, Int32 level, Int32 zoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture3DEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTextureEXT")]
            public static 
            void NamedFramebufferTexture(Int32 framebuffer, FramebufferAttachment attachment, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTextureEXT")]
            public static 
            void NamedFramebufferTexture(UInt32 framebuffer, FramebufferAttachment attachment, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTextureFaceEXT")]
            public static 
            void NamedFramebufferTextureFace(Int32 framebuffer, FramebufferAttachment attachment, Int32 texture, Int32 level, TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureFaceEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTextureFaceEXT")]
            public static 
            void NamedFramebufferTextureFace(UInt32 framebuffer, FramebufferAttachment attachment, UInt32 texture, Int32 level, TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureFaceEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTextureLayerEXT")]
            public static 
            void NamedFramebufferTextureLayer(Int32 framebuffer, FramebufferAttachment attachment, Int32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureLayerEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedFramebufferTextureLayerEXT")]
            public static 
            void NamedFramebufferTextureLayer(UInt32 framebuffer, FramebufferAttachment attachment, UInt32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureLayerEXT((UInt32)framebuffer, (FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4dEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, ExtDirectStateAccess target, Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4dEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4dEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4dEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            unsafe void NamedProgramLocalParameter4(Int32 program, ExtDirectStateAccess target, Int32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, ExtDirectStateAccess target, Int32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, ExtDirectStateAccess target, Int32 index, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            unsafe void NamedProgramLocalParameter4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, ExtDirectStateAccess target, UInt32 index, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4fEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, ExtDirectStateAccess target, Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4fEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4fEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4fEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, ExtDirectStateAccess target, Int32 index, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            unsafe void NamedProgramLocalParameter4(Int32 program, ExtDirectStateAccess target, Int32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, ExtDirectStateAccess target, Int32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, ExtDirectStateAccess target, UInt32 index, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            unsafe void NamedProgramLocalParameter4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4iEXT")]
            public static 
            void NamedProgramLocalParameterI4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4iEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4iEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4iEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            unsafe void NamedProgramLocalParameterI4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            void NamedProgramLocalParameterI4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            void NamedProgramLocalParameterI4(Int32 program, ExtDirectStateAccess target, Int32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            unsafe void NamedProgramLocalParameterI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uiEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4uiEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z, (UInt32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameterI4uivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
            public static 
            unsafe void NamedProgramLocalParameterI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4uivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameterI4uivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            void NamedProgramLocalParameters4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameters4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            unsafe void NamedProgramLocalParameters4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameters4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            void NamedProgramLocalParameters4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameters4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            void NamedProgramLocalParameters4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParameters4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            unsafe void NamedProgramLocalParameters4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameters4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            void NamedProgramLocalParameters4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameters4fvEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            unsafe void NamedProgramLocalParametersI4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParametersI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            void NamedProgramLocalParametersI4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParametersI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            void NamedProgramLocalParametersI4(Int32 program, ExtDirectStateAccess target, Int32 index, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParametersI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            unsafe void NamedProgramLocalParametersI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParametersI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            void NamedProgramLocalParametersI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParametersI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            void NamedProgramLocalParametersI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParametersI4ivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
            public static 
            void NamedProgramLocalParametersI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glNamedProgramLocalParametersI4uivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
            public static 
            unsafe void NamedProgramLocalParametersI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParametersI4uivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
            public static 
            void NamedProgramLocalParametersI4(UInt32 program, ExtDirectStateAccess target, UInt32 index, Int32 count, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParametersI4uivEXT((UInt32)program, (ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, [In, Out] ref T4 @string)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, [In, Out] T4[,,] @string)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, [In, Out] T4[,] @string)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, [In, Out] T4[] @string)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString(Int32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, [In, Out] ref T4 @string)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, [In, Out] T4[,,] @string)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, [In, Out] T4[,] @string)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, [In, Out] T4[] @string)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString(UInt32 program, ExtDirectStateAccess target, ExtDirectStateAccess format, Int32 len, IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramStringEXT((UInt32)program, (ExtDirectStateAccess)target, (ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedRenderbufferStorageEXT")]
            public static 
            void NamedRenderbufferStorage(Int32 renderbuffer, PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageEXT((UInt32)renderbuffer, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedRenderbufferStorageEXT")]
            public static 
            void NamedRenderbufferStorage(UInt32 renderbuffer, PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageEXT((UInt32)renderbuffer, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedRenderbufferStorageMultisampleCoverageEXT")]
            public static 
            void NamedRenderbufferStorageMultisampleCoverage(Int32 renderbuffer, Int32 coverageSamples, Int32 colorSamples, PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageMultisampleCoverageEXT((UInt32)renderbuffer, (Int32)coverageSamples, (Int32)colorSamples, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedRenderbufferStorageMultisampleCoverageEXT")]
            public static 
            void NamedRenderbufferStorageMultisampleCoverage(UInt32 renderbuffer, Int32 coverageSamples, Int32 colorSamples, PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageMultisampleCoverageEXT((UInt32)renderbuffer, (Int32)coverageSamples, (Int32)colorSamples, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedRenderbufferStorageMultisampleEXT")]
            public static 
            void NamedRenderbufferStorageMultisample(Int32 renderbuffer, Int32 samples, PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageMultisampleEXT((UInt32)renderbuffer, (Int32)samples, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glNamedRenderbufferStorageMultisampleEXT")]
            public static 
            void NamedRenderbufferStorageMultisample(UInt32 renderbuffer, Int32 samples, PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageMultisampleEXT((UInt32)renderbuffer, (Int32)samples, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer<T3>(NormalPointerType type, Int32 stride, Int32 count, [In, Out] ref T3 pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerEXT((NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer<T3>(NormalPointerType type, Int32 stride, Int32 count, [In, Out] T3[,,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerEXT((NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer<T3>(NormalPointerType type, Int32 stride, Int32 count, [In, Out] T3[,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerEXT((NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer<T3>(NormalPointerType type, Int32 stride, Int32 count, [In, Out] T3[] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerEXT((NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer(NormalPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalPointerEXT((NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtPixelTransform", Version = "1.1", EntryPoint = "glPixelTransformParameterfEXT")]
            public static 
            void PixelTransformParameter(ExtPixelTransform target, ExtPixelTransform pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransformParameterfEXT((ExtPixelTransform)target, (ExtPixelTransform)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtPixelTransform", Version = "1.1", EntryPoint = "glPixelTransformParameterfvEXT")]
            public static 
            unsafe void PixelTransformParameter(ExtPixelTransform target, ExtPixelTransform pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransformParameterfvEXT((ExtPixelTransform)target, (ExtPixelTransform)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtPixelTransform", Version = "1.1", EntryPoint = "glPixelTransformParameteriEXT")]
            public static 
            void PixelTransformParameter(ExtPixelTransform target, ExtPixelTransform pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransformParameteriEXT((ExtPixelTransform)target, (ExtPixelTransform)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtPixelTransform", Version = "1.1", EntryPoint = "glPixelTransformParameterivEXT")]
            public static 
            unsafe void PixelTransformParameter(ExtPixelTransform target, ExtPixelTransform pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransformParameterivEXT((ExtPixelTransform)target, (ExtPixelTransform)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPointParameters", Version = "1.0", EntryPoint = "glPointParameterfEXT")]
            public static 
            void PointParameter(ExtPointParameters pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfEXT((ExtPointParameters)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtPointParameters", Version = "1.0", EntryPoint = "glPointParameterfvEXT")]
            public static 
            unsafe void PointParameter(ExtPointParameters pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfvEXT((ExtPointParameters)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPointParameters", Version = "1.0", EntryPoint = "glPointParameterfvEXT")]
            public static 
            void PointParameter(ExtPointParameters pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glPointParameterfvEXT((ExtPointParameters)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the scale and units used to calculate depth values
        /// </summary>
        /// <param name="factor">
        /// <para>
        /// Specifies a scale factor that is used to create a variable depth offset for each polygon. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="units">
        /// <para>
        /// Is multiplied by an implementation-specific value to create a constant depth offset. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtPolygonOffset", Version = "1.0", EntryPoint = "glPolygonOffsetEXT")]
            public static 
            void PolygonOffset(Single factor, Single bias)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPolygonOffsetEXT((Single)factor, (Single)bias);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glPrioritizeTexturesEXT")]
            public static 
            unsafe void PrioritizeTextures(Int32 n, Int32* textures, Single* priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPrioritizeTexturesEXT((Int32)n, (UInt32*)textures, (Single*)priorities);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glPrioritizeTexturesEXT")]
            public static 
            void PrioritizeTextures(Int32 n, Int32[] textures, Single[] priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = textures)
                    fixed (Single* priorities_ptr = priorities)
                    {
                        Delegates.glPrioritizeTexturesEXT((Int32)n, (UInt32*)textures_ptr, (Single*)priorities_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glPrioritizeTexturesEXT")]
            public static 
            void PrioritizeTextures(Int32 n, ref Int32 textures, ref Single priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = &textures)
                    fixed (Single* priorities_ptr = &priorities)
                    {
                        Delegates.glPrioritizeTexturesEXT((Int32)n, (UInt32*)textures_ptr, (Single*)priorities_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glPrioritizeTexturesEXT")]
            public static 
            void PrioritizeTextures(Int32 n, ref UInt32 textures, ref Single priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = &textures)
                    fixed (Single* priorities_ptr = &priorities)
                    {
                        Delegates.glPrioritizeTexturesEXT((Int32)n, (UInt32*)textures_ptr, (Single*)priorities_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glPrioritizeTexturesEXT")]
            public static 
            unsafe void PrioritizeTextures(Int32 n, UInt32* textures, Single* priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPrioritizeTexturesEXT((Int32)n, (UInt32*)textures, (Single*)priorities);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set texture residence priority
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="textures">
        /// <para>
        /// Specifies an array containing the names of the textures to be prioritized.
        /// </para>
        /// </param>
        /// <param name="priorities">
        /// <para>
        /// Specifies an array containing the texture priorities. A priority given in an element of priorities applies to the texture named by the corresponding element of textures.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureObject", Version = "1.0", EntryPoint = "glPrioritizeTexturesEXT")]
            public static 
            void PrioritizeTextures(Int32 n, UInt32[] textures, Single[] priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = textures)
                    fixed (Single* priorities_ptr = priorities)
                    {
                        Delegates.glPrioritizeTexturesEXT((Int32)n, (UInt32*)textures_ptr, (Single*)priorities_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            void ProgramEnvParameters4(ExtGpuProgramParameters target, Int32 index, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            unsafe void ProgramEnvParameters4(ExtGpuProgramParameters target, Int32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            void ProgramEnvParameters4(ExtGpuProgramParameters target, Int32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            void ProgramEnvParameters4(ExtGpuProgramParameters target, UInt32 index, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            unsafe void ProgramEnvParameters4(ExtGpuProgramParameters target, UInt32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            void ProgramEnvParameters4(ExtGpuProgramParameters target, UInt32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            void ProgramLocalParameters4(ExtGpuProgramParameters target, Int32 index, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            unsafe void ProgramLocalParameters4(ExtGpuProgramParameters target, Int32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            void ProgramLocalParameters4(ExtGpuProgramParameters target, Int32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            void ProgramLocalParameters4(ExtGpuProgramParameters target, UInt32 index, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            unsafe void ProgramLocalParameters4(ExtGpuProgramParameters target, UInt32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuProgramParameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            void ProgramLocalParameters4(ExtGpuProgramParameters target, UInt32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameters4fvEXT((ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtGeometryShader4", Version = "2.0", EntryPoint = "glProgramParameteriEXT")]
            public static 
            void ProgramParameter(Int32 program, ExtGeometryShader4 pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameteriEXT((UInt32)program, (ExtGeometryShader4)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGeometryShader4", Version = "2.0", EntryPoint = "glProgramParameteriEXT")]
            public static 
            void ProgramParameter(UInt32 program, ExtGeometryShader4 pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameteriEXT((UInt32)program, (ExtGeometryShader4)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1fEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Single v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1fEXT((UInt32)program, (Int32)location, (Single)v0);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1fEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Single v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1fEXT((UInt32)program, (Int32)location, (Single)v0);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
            public static 
            unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniform1fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
            public static 
            unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniform1fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1iEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1iEXT((UInt32)program, (Int32)location, (Int32)v0);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1iEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1iEXT((UInt32)program, (Int32)location, (Int32)v0);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
            public static 
            unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glProgramUniform1ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
            public static 
            unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glProgramUniform1ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1uiEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, UInt32 v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1uiEXT((UInt32)program, (Int32)location, (UInt32)v0);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
            public static 
            unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = value)
                    {
                        Delegates.glProgramUniform1uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2fEXT")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Single v0, Single v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2fEXT((UInt32)program, (Int32)location, (Single)v0, (Single)v1);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2fEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Single v0, Single v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2fEXT((UInt32)program, (Int32)location, (Single)v0, (Single)v1);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniform2fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
            public static 
            unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniform2fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniform2fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
            public static 
            unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniform2fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2iEXT")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int32 v0, Int32 v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2iEXT((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2iEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 v0, Int32 v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2iEXT((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
            public static 
            unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glProgramUniform2ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
            public static 
            unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glProgramUniform2ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2uiEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, UInt32 v0, UInt32 v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2uiEXT((UInt32)program, (Int32)location, (UInt32)v0, (UInt32)v1);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform2uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
            public static 
            unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = value)
                    {
                        Delegates.glProgramUniform2uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3fEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Single v0, Single v1, Single v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3fEXT((UInt32)program, (Int32)location, (Single)v0, (Single)v1, (Single)v2);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3fEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Single v0, Single v1, Single v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3fEXT((UInt32)program, (Int32)location, (Single)v0, (Single)v1, (Single)v2);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
            public static 
            unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniform3fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
            public static 
            unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniform3fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3iEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3iEXT((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1, (Int32)v2);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3iEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3iEXT((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1, (Int32)v2);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
            public static 
            unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glProgramUniform3ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
            public static 
            unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glProgramUniform3ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3uiEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3uiEXT((UInt32)program, (Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
            public static 
            unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = value)
                    {
                        Delegates.glProgramUniform3uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4fEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Single v0, Single v1, Single v2, Single v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4fEXT((UInt32)program, (Int32)location, (Single)v0, (Single)v1, (Single)v2, (Single)v3);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4fEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Single v0, Single v1, Single v2, Single v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4fEXT((UInt32)program, (Int32)location, (Single)v0, (Single)v1, (Single)v2, (Single)v3);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
            public static 
            unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniform4fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
            public static 
            unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniform4fvEXT((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4iEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4iEXT((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1, (Int32)v2, (Int32)v3);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4iEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4iEXT((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1, (Int32)v2, (Int32)v3);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
            public static 
            unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glProgramUniform4ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
            public static 
            unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glProgramUniform4ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4ivEXT((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4uiEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4uiEXT((UInt32)program, (Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2, (UInt32)v3);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
            public static 
            unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = value)
                    {
                        Delegates.glProgramUniform4uivEXT((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
            public static 
            void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
            public static 
            void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
            public static 
            void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
            public static 
            void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
            public static 
            void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
            public static 
            void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
            public static 
            void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
            public static 
            void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
            public static 
            void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
            public static 
            void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
            public static 
            void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
            public static 
            void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
            public static 
            void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
            public static 
            void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
            public static 
            void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
            public static 
            void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
            public static 
            void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
            public static 
            void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
            public static 
            void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
            public static 
            void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
            public static 
            void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
            public static 
            void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
            public static 
            void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
            public static 
            void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3x4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
            public static 
            void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
            public static 
            void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
            public static 
            void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
            public static 
            void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
            public static 
            void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
            public static 
            void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
            public static 
            void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
            public static 
            void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4x2fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
            public static 
            void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
            public static 
            void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
            public static 
            void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
            public static 
            void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4x3fvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtProvokingVertex", Version = "2.1", EntryPoint = "glProvokingVertexEXT")]
            public static 
            void ProvokingVertex(ExtProvokingVertex mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProvokingVertexEXT((ExtProvokingVertex)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glPushClientAttribDefaultEXT")]
            public static 
            void PushClientAttribDefault(ClientAttribMask mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPushClientAttribDefaultEXT((ClientAttribMask)mask);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferObject", Version = "1.2", EntryPoint = "glRenderbufferStorageEXT")]
            public static 
            void RenderbufferStorage(RenderbufferTarget target, RenderbufferStorage internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRenderbufferStorageEXT((RenderbufferTarget)target, (RenderbufferStorage)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtFramebufferMultisample", Version = "1.5", EntryPoint = "glRenderbufferStorageMultisampleEXT")]
            public static 
            void RenderbufferStorageMultisample(ExtFramebufferMultisample target, Int32 samples, ExtFramebufferMultisample internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRenderbufferStorageMultisampleEXT((ExtFramebufferMultisample)target, (Int32)samples, (ExtFramebufferMultisample)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Reset histogram table entries to zero
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glResetHistogramEXT")]
            public static 
            void ResetHistogram(ExtHistogram target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glResetHistogramEXT((ExtHistogram)target);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Reset minmax table entries to initial values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtHistogram", Version = "1.0", EntryPoint = "glResetMinmaxEXT")]
            public static 
            void ResetMinmax(ExtHistogram target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glResetMinmaxEXT((ExtHistogram)target);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtMultisample", Version = "1.0", EntryPoint = "glSampleMaskEXT")]
            public static 
            void SampleMask(Single value, bool invert)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleMaskEXT((Single)value, (bool)invert);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtMultisample", Version = "1.0", EntryPoint = "glSamplePatternEXT")]
            public static 
            void SamplePattern(ExtMultisample pattern)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSamplePatternEXT((ExtMultisample)pattern);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3bEXT")]
            public static 
            void SecondaryColor3(SByte red, SByte green, SByte blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3bEXT((SByte)red, (SByte)green, (SByte)blue);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3bvEXT")]
            public static 
            void SecondaryColor3(ref SByte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3bvEXT")]
            public static 
            unsafe void SecondaryColor3(SByte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3bvEXT((SByte*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3bvEXT")]
            public static 
            void SecondaryColor3(SByte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3dEXT")]
            public static 
            void SecondaryColor3(Double red, Double green, Double blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3dEXT((Double)red, (Double)green, (Double)blue);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3dvEXT")]
            public static 
            unsafe void SecondaryColor3(Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3dvEXT((Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3dvEXT")]
            public static 
            void SecondaryColor3(Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3dvEXT((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3dvEXT")]
            public static 
            void SecondaryColor3(ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3dvEXT((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3fEXT")]
            public static 
            void SecondaryColor3(Single red, Single green, Single blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3fEXT((Single)red, (Single)green, (Single)blue);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3fvEXT")]
            public static 
            void SecondaryColor3(ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3fvEXT((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3fvEXT")]
            public static 
            unsafe void SecondaryColor3(Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3fvEXT((Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3fvEXT")]
            public static 
            void SecondaryColor3(Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3fvEXT((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3iEXT")]
            public static 
            void SecondaryColor3(Int32 red, Int32 green, Int32 blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3iEXT((Int32)red, (Int32)green, (Int32)blue);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3ivEXT")]
            public static 
            unsafe void SecondaryColor3(Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3ivEXT((Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3ivEXT")]
            public static 
            void SecondaryColor3(Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3ivEXT((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3ivEXT")]
            public static 
            void SecondaryColor3(ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3ivEXT((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3sEXT")]
            public static 
            void SecondaryColor3(Int16 red, Int16 green, Int16 blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3sEXT((Int16)red, (Int16)green, (Int16)blue);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3svEXT")]
            public static 
            unsafe void SecondaryColor3(Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3svEXT((Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3svEXT")]
            public static 
            void SecondaryColor3(Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3svEXT((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3svEXT")]
            public static 
            void SecondaryColor3(ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3svEXT((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3ubEXT")]
            public static 
            void SecondaryColor3(Byte red, Byte green, Byte blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3ubEXT((Byte)red, (Byte)green, (Byte)blue);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3ubvEXT")]
            public static 
            unsafe void SecondaryColor3(Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3ubvEXT((Byte*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3ubvEXT")]
            public static 
            void SecondaryColor3(Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3ubvEXT((Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3ubvEXT")]
            public static 
            void SecondaryColor3(ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3ubvEXT((Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3uiEXT")]
            public static 
            void SecondaryColor3(UInt32 red, UInt32 green, UInt32 blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3uiEXT((UInt32)red, (UInt32)green, (UInt32)blue);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3uivEXT")]
            public static 
            void SecondaryColor3(ref UInt32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3uivEXT((UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3uivEXT")]
            public static 
            unsafe void SecondaryColor3(UInt32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3uivEXT((UInt32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3uivEXT")]
            public static 
            void SecondaryColor3(UInt32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3uivEXT((UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3usEXT")]
            public static 
            void SecondaryColor3(UInt16 red, UInt16 green, UInt16 blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3usEXT((UInt16)red, (UInt16)green, (UInt16)blue);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3usvEXT")]
            public static 
            void SecondaryColor3(ref UInt16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3usvEXT((UInt16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3usvEXT")]
            public static 
            unsafe void SecondaryColor3(UInt16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3usvEXT((UInt16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set the current secondary color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// Specify new red, green, and blue values for the current secondary color.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColor3usvEXT")]
            public static 
            void SecondaryColor3(UInt16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3usvEXT((UInt16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] ref T3 pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glSecondaryColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[,,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glSecondaryColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glSecondaryColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glSecondaryColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of secondary colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSecondaryColor", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer(Int32 size, ColorPointerType type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColorPointerEXT((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T6,T7>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T6 row, [In, Out] T7[,,] column)
                where T6 : struct
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                try
                {
                    Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T6,T7>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,,] row, [In, Out] T7[,,] column)
                where T6 : struct
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                try
                {
                    Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T6,T7>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[,] row, [In, Out] T7[,,] column)
                where T6 : struct
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                try
                {
                    Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T6,T7>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T6[] row, [In, Out] T7[,,] column)
                where T6 : struct
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle row_ptr = GCHandle.Alloc(row, GCHandleType.Pinned);
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                try
                {
                    Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T7>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, [In, Out] ref T7 column)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                try
                {
                    Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T7>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, [In, Out] T7[,,] column)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                try
                {
                    Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T7>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, [In, Out] T7[,] column)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                try
                {
                    Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T7>(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, [In, Out] T7[] column)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle column_ptr = GCHandle.Alloc(column, GCHandleType.Pinned);
                try
                {
                    Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a separable two-dimensional convolution filter
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_SEPARABLE_2D.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of elements in the pixel array referenced by row. (This is the width of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The number of elements in the pixel array referenced by column. (This is the height of the separable filter kernel.)
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in row and column. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_INTENSITY, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in row and column. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="row">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
        /// </para>
        /// </param>
        /// <param name="column">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtConvolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D(ExtConvolution target, PixelInternalFormat internalformat, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr row, IntPtr column)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSeparableFilter2DEXT((ExtConvolution)target, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)row, (IntPtr)column);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(Int32 id, ExtVertexShader type, [In, Out] ref T2 addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(Int32 id, ExtVertexShader type, [In, Out] T2[,,] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(Int32 id, ExtVertexShader type, [In, Out] T2[,] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(Int32 id, ExtVertexShader type, [In, Out] T2[] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant(Int32 id, ExtVertexShader type, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(UInt32 id, ExtVertexShader type, [In, Out] ref T2 addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(UInt32 id, ExtVertexShader type, [In, Out] T2[,,] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(UInt32 id, ExtVertexShader type, [In, Out] T2[,] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(UInt32 id, ExtVertexShader type, [In, Out] T2[] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant(UInt32 id, ExtVertexShader type, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetInvariantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(Int32 id, ExtVertexShader type, [In, Out] ref T2 addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(Int32 id, ExtVertexShader type, [In, Out] T2[,,] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(Int32 id, ExtVertexShader type, [In, Out] T2[,] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(Int32 id, ExtVertexShader type, [In, Out] T2[] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant(Int32 id, ExtVertexShader type, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(UInt32 id, ExtVertexShader type, [In, Out] ref T2 addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(UInt32 id, ExtVertexShader type, [In, Out] T2[,,] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(UInt32 id, ExtVertexShader type, [In, Out] T2[,] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(UInt32 id, ExtVertexShader type, [In, Out] T2[] addr)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant(UInt32 id, ExtVertexShader type, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetLocalConstantEXT((UInt32)id, (ExtVertexShader)type, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glShaderOp1EXT")]
            public static 
            void ShaderOp1(ExtVertexShader op, Int32 res, Int32 arg1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp1EXT((ExtVertexShader)op, (UInt32)res, (UInt32)arg1);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glShaderOp1EXT")]
            public static 
            void ShaderOp1(ExtVertexShader op, UInt32 res, UInt32 arg1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp1EXT((ExtVertexShader)op, (UInt32)res, (UInt32)arg1);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glShaderOp2EXT")]
            public static 
            void ShaderOp2(ExtVertexShader op, Int32 res, Int32 arg1, Int32 arg2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp2EXT((ExtVertexShader)op, (UInt32)res, (UInt32)arg1, (UInt32)arg2);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glShaderOp2EXT")]
            public static 
            void ShaderOp2(ExtVertexShader op, UInt32 res, UInt32 arg1, UInt32 arg2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp2EXT((ExtVertexShader)op, (UInt32)res, (UInt32)arg1, (UInt32)arg2);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glShaderOp3EXT")]
            public static 
            void ShaderOp3(ExtVertexShader op, Int32 res, Int32 arg1, Int32 arg2, Int32 arg3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp3EXT((ExtVertexShader)op, (UInt32)res, (UInt32)arg1, (UInt32)arg2, (UInt32)arg3);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glShaderOp3EXT")]
            public static 
            void ShaderOp3(ExtVertexShader op, UInt32 res, UInt32 arg1, UInt32 arg2, UInt32 arg3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp3EXT((ExtVertexShader)op, (UInt32)res, (UInt32)arg1, (UInt32)arg2, (UInt32)arg3);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtStencilClearTag", Version = "1.5", EntryPoint = "glStencilClearTagEXT")]
            public static 
            void StencilClearTag(Int32 stencilTagBits, Int32 stencilClearTag)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilClearTagEXT((Int32)stencilTagBits, (UInt32)stencilClearTag);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtStencilClearTag", Version = "1.5", EntryPoint = "glStencilClearTagEXT")]
            public static 
            void StencilClearTag(Int32 stencilTagBits, UInt32 stencilClearTag)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilClearTagEXT((Int32)stencilTagBits, (UInt32)stencilClearTag);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSwizzleEXT")]
            public static 
            void Swizzle(Int32 res, Int32 @in, ExtVertexShader outX, ExtVertexShader outY, ExtVertexShader outZ, ExtVertexShader outW)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSwizzleEXT((UInt32)res, (UInt32)@in, (ExtVertexShader)outX, (ExtVertexShader)outY, (ExtVertexShader)outZ, (ExtVertexShader)outW);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glSwizzleEXT")]
            public static 
            void Swizzle(UInt32 res, UInt32 @in, ExtVertexShader outX, ExtVertexShader outY, ExtVertexShader outZ, ExtVertexShader outW)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSwizzleEXT((UInt32)res, (UInt32)@in, (ExtVertexShader)outX, (ExtVertexShader)outY, (ExtVertexShader)outZ, (ExtVertexShader)outW);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3bEXT")]
            public static 
            void Tangent3(Byte tx, Byte ty, Byte tz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3bEXT((SByte)tx, (SByte)ty, (SByte)tz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3bEXT")]
            public static 
            void Tangent3(SByte tx, SByte ty, SByte tz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3bEXT((SByte)tx, (SByte)ty, (SByte)tz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3bvEXT")]
            public static 
            unsafe void Tangent3(Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3bvEXT((SByte*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3bvEXT")]
            public static 
            void Tangent3(Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glTangent3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3bvEXT")]
            public static 
            void Tangent3(ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glTangent3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3bvEXT")]
            public static 
            void Tangent3(ref SByte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = &v)
                    {
                        Delegates.glTangent3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3bvEXT")]
            public static 
            unsafe void Tangent3(SByte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3bvEXT((SByte*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3bvEXT")]
            public static 
            void Tangent3(SByte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = v)
                    {
                        Delegates.glTangent3bvEXT((SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3dEXT")]
            public static 
            void Tangent3(Double tx, Double ty, Double tz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3dEXT((Double)tx, (Double)ty, (Double)tz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3dvEXT")]
            public static 
            unsafe void Tangent3(Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3dvEXT((Double*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3dvEXT")]
            public static 
            void Tangent3(Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glTangent3dvEXT((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3dvEXT")]
            public static 
            void Tangent3(ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glTangent3dvEXT((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3fEXT")]
            public static 
            void Tangent3(Single tx, Single ty, Single tz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3fEXT((Single)tx, (Single)ty, (Single)tz);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3fvEXT")]
            public static 
            void Tangent3(ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glTangent3fvEXT((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3fvEXT")]
            public static 
            unsafe void Tangent3(Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3fvEXT((Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3fvEXT")]
            public static 
            void Tangent3(Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glTangent3fvEXT((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3iEXT")]
            public static 
            void Tangent3(Int32 tx, Int32 ty, Int32 tz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3iEXT((Int32)tx, (Int32)ty, (Int32)tz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3ivEXT")]
            public static 
            unsafe void Tangent3(Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3ivEXT((Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3ivEXT")]
            public static 
            void Tangent3(Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glTangent3ivEXT((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3ivEXT")]
            public static 
            void Tangent3(ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glTangent3ivEXT((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3sEXT")]
            public static 
            void Tangent3(Int16 tx, Int16 ty, Int16 tz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3sEXT((Int16)tx, (Int16)ty, (Int16)tz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3svEXT")]
            public static 
            unsafe void Tangent3(Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangent3svEXT((Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3svEXT")]
            public static 
            void Tangent3(Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glTangent3svEXT((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangent3svEXT")]
            public static 
            void Tangent3(ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glTangent3svEXT((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTangentPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTangentPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTangentPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTangentPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCoordinateFrame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer(NormalPointerType type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangentPointerEXT((NormalPointerType)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTextureBufferObject", Version = "2.0", EntryPoint = "glTexBufferEXT")]
            public static 
            void TexBuffer(TextureTarget target, ExtTextureBufferObject internalformat, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBufferEXT((TextureTarget)target, (ExtTextureBufferObject)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureBufferObject", Version = "2.0", EntryPoint = "glTexBufferEXT")]
            public static 
            void TexBuffer(TextureTarget target, ExtTextureBufferObject internalformat, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBufferEXT((TextureTarget)target, (ExtTextureBufferObject)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer<T4>(Int32 size, TexCoordPointerType type, Int32 stride, Int32 count, [In, Out] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointerEXT((Int32)size, (TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer<T4>(Int32 size, TexCoordPointerType type, Int32 stride, Int32 count, [In, Out] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointerEXT((Int32)size, (TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer<T4>(Int32 size, TexCoordPointerType type, Int32 stride, Int32 count, [In, Out] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointerEXT((Int32)size, (TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer<T4>(Int32 size, TexCoordPointerType type, Int32 stride, Int32 count, [In, Out] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointerEXT((Int32)size, (TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer(Int32 size, TexCoordPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoordPointerEXT((Int32)size, (TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D<T9>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T9 pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage3DEXT((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D<T9>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage3DEXT((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D<T9>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage3DEXT((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D<T9>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage3DEXT((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level is the n sup th mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be 1, 2, 3, or 4, or one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup n + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup m + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2 sup k + 2 ( border ) for some integer . All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Specifies the width of the border. Must be either 0 or 1.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexImage3DEXT((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glTexParameterIivEXT")]
            public static 
            unsafe void TexParameterI(TextureTarget target, TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexParameterIivEXT((TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glTexParameterIivEXT")]
            public static 
            void TexParameterI(TextureTarget target, TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTexParameterIivEXT((TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glTexParameterIivEXT")]
            public static 
            void TexParameterI(TextureTarget target, TextureParameterName pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glTexParameterIivEXT((TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glTexParameterIuivEXT")]
            public static 
            void TexParameterI(TextureTarget target, TextureParameterName pname, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glTexParameterIuivEXT((TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glTexParameterIuivEXT")]
            public static 
            unsafe void TexParameterI(TextureTarget target, TextureParameterName pname, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexParameterIuivEXT((TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTextureInteger", Version = "2.0", EntryPoint = "glTexParameterIuivEXT")]
            public static 
            void TexParameterI(TextureTarget target, TextureParameterName pname, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glTexParameterIuivEXT((TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T6 pixels)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage1DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T6[,,] pixels)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage1DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T6[,] pixels)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage1DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D<T6>(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T6[] pixels)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage1DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a one-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D(TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexSubImage1DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T8 pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage2DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T8[,,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage2DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T8[,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage2DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D<T8>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T8[] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage2DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a two-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtSubtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexSubImage2DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] ref T10 pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage3DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T10[,,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage3DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T10[,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage3DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D<T10>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T10[] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage3DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// Specifies a texel offset in the x direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// Specifies a texel offset in the y direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// Specifies a texel offset in the z direction within the texture array.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture subimage.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. The following symbolic values are accepted: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Specifies a pointer to the image data in memory.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtTexture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexSubImage3DEXT((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureBufferEXT")]
            public static 
            void TextureBuffer(Int32 texture, TextureTarget target, ExtDirectStateAccess internalformat, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureBufferEXT((UInt32)texture, (TextureTarget)target, (ExtDirectStateAccess)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureBufferEXT")]
            public static 
            void TextureBuffer(UInt32 texture, TextureTarget target, ExtDirectStateAccess internalformat, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureBufferEXT((UInt32)texture, (TextureTarget)target, (ExtDirectStateAccess)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T8 pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[,,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T8 pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[,,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, [In, Out] T8[] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T9 pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T9 pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, [In, Out] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T10 pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[,,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D(Int32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T10 pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[,,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D(UInt32 texture, TextureTarget target, Int32 level, ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtLightTexture", Version = "1.1", EntryPoint = "glTextureLightEXT")]
            public static 
            void TextureLight(ExtLightTexture pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureLightEXT((ExtLightTexture)pname);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtLightTexture", Version = "1.1", EntryPoint = "glTextureMaterialEXT")]
            public static 
            void TextureMaterial(MaterialFace face, MaterialParameter mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureMaterialEXT((MaterialFace)face, (MaterialParameter)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTexturePerturbNormal", Version = "1.1", EntryPoint = "glTextureNormalEXT")]
            public static 
            void TextureNormal(ExtTexturePerturbNormal mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureNormalEXT((ExtTexturePerturbNormal)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterfEXT")]
            public static 
            void TextureParameter(Int32 texture, TextureTarget target, TextureParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterfEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterfEXT")]
            public static 
            void TextureParameter(UInt32 texture, TextureTarget target, TextureParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterfEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterfvEXT")]
            public static 
            unsafe void TextureParameter(Int32 texture, TextureTarget target, TextureParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterfvEXT")]
            public static 
            void TextureParameter(Int32 texture, TextureTarget target, TextureParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterfvEXT")]
            public static 
            unsafe void TextureParameter(UInt32 texture, TextureTarget target, TextureParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterfvEXT")]
            public static 
            void TextureParameter(UInt32 texture, TextureTarget target, TextureParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterfvEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameteriEXT")]
            public static 
            void TextureParameter(Int32 texture, TextureTarget target, TextureParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameteriEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameteriEXT")]
            public static 
            void TextureParameter(UInt32 texture, TextureTarget target, TextureParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameteriEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            unsafe void TextureParameterI(Int32 texture, TextureTarget target, TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            void TextureParameterI(Int32 texture, TextureTarget target, TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            void TextureParameterI(Int32 texture, TextureTarget target, TextureParameterName pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            unsafe void TextureParameterI(UInt32 texture, TextureTarget target, TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            void TextureParameterI(UInt32 texture, TextureTarget target, TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            void TextureParameterI(UInt32 texture, TextureTarget target, TextureParameterName pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glTextureParameterIivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
            public static 
            void TextureParameterI(UInt32 texture, TextureTarget target, TextureParameterName pname, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glTextureParameterIuivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
            public static 
            unsafe void TextureParameterI(UInt32 texture, TextureTarget target, TextureParameterName pname, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterIuivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
            public static 
            void TextureParameterI(UInt32 texture, TextureTarget target, TextureParameterName pname, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterIuivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterivEXT")]
            public static 
            unsafe void TextureParameter(Int32 texture, TextureTarget target, TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterivEXT")]
            public static 
            void TextureParameter(Int32 texture, TextureTarget target, TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterivEXT")]
            public static 
            unsafe void TextureParameter(UInt32 texture, TextureTarget target, TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureParameterivEXT")]
            public static 
            void TextureParameter(UInt32 texture, TextureTarget target, TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterivEXT((UInt32)texture, (TextureTarget)target, (TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureRenderbufferEXT")]
            public static 
            void TextureRenderbuffer(Int32 texture, TextureTarget target, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureRenderbufferEXT((UInt32)texture, (TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureRenderbufferEXT")]
            public static 
            void TextureRenderbuffer(UInt32 texture, TextureTarget target, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureRenderbufferEXT((UInt32)texture, (TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T7 pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[,,] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[,] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T7 pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[,,] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[,] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, [In, Out] T7[] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 width, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage1DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T9 pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] ref T9 pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, [In, Out] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage2DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] ref T11 pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[,,] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[,] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D(Int32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] ref T11 pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[,,] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[,] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, [In, Out] T11[] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D(UInt32 texture, TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage3DEXT((UInt32)texture, (TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glTransformFeedbackVaryingsEXT")]
            public static 
            void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, ExtTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackVaryingsEXT((UInt32)program, (Int32)count, (String[])varyings, (ExtTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtTransformFeedback", Version = "2.0", EntryPoint = "glTransformFeedbackVaryingsEXT")]
            public static 
            void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, ExtTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackVaryingsEXT((UInt32)program, (Int32)count, (String[])varyings, (ExtTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform1uiEXT")]
            public static 
            void Uniform1(Int32 location, Int32 v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1uiEXT((Int32)location, (UInt32)v0);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform1uiEXT")]
            public static 
            void Uniform1(Int32 location, UInt32 v0)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1uiEXT((Int32)location, (UInt32)v0);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform1uivEXT")]
            public static 
            unsafe void Uniform1(Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1uivEXT((Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform1uivEXT")]
            public static 
            void Uniform1(Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glUniform1uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform1uivEXT")]
            public static 
            void Uniform1(Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glUniform1uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform1uivEXT")]
            public static 
            void Uniform1(Int32 location, Int32 count, ref UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = &value)
                    {
                        Delegates.glUniform1uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform1uivEXT")]
            public static 
            unsafe void Uniform1(Int32 location, Int32 count, UInt32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1uivEXT((Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform1uivEXT")]
            public static 
            void Uniform1(Int32 location, Int32 count, UInt32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = value)
                    {
                        Delegates.glUniform1uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform2uiEXT")]
            public static 
            void Uniform2(Int32 location, Int32 v0, Int32 v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2uiEXT((Int32)location, (UInt32)v0, (UInt32)v1);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform2uiEXT")]
            public static 
            void Uniform2(Int32 location, UInt32 v0, UInt32 v1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2uiEXT((Int32)location, (UInt32)v0, (UInt32)v1);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform2uivEXT")]
            public static 
            unsafe void Uniform2(Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2uivEXT((Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform2uivEXT")]
            public static 
            void Uniform2(Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glUniform2uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform2uivEXT")]
            public static 
            void Uniform2(Int32 location, Int32 count, ref UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = &value)
                    {
                        Delegates.glUniform2uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform2uivEXT")]
            public static 
            unsafe void Uniform2(Int32 location, Int32 count, UInt32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2uivEXT((Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform2uivEXT")]
            public static 
            void Uniform2(Int32 location, Int32 count, UInt32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = value)
                    {
                        Delegates.glUniform2uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform3uiEXT")]
            public static 
            void Uniform3(Int32 location, Int32 v0, Int32 v1, Int32 v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3uiEXT((Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform3uiEXT")]
            public static 
            void Uniform3(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3uiEXT((Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform3uivEXT")]
            public static 
            unsafe void Uniform3(Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3uivEXT((Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform3uivEXT")]
            public static 
            void Uniform3(Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glUniform3uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform3uivEXT")]
            public static 
            void Uniform3(Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glUniform3uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform3uivEXT")]
            public static 
            void Uniform3(Int32 location, Int32 count, ref UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = &value)
                    {
                        Delegates.glUniform3uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform3uivEXT")]
            public static 
            unsafe void Uniform3(Int32 location, Int32 count, UInt32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3uivEXT((Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform3uivEXT")]
            public static 
            void Uniform3(Int32 location, Int32 count, UInt32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = value)
                    {
                        Delegates.glUniform3uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform4uiEXT")]
            public static 
            void Uniform4(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4uiEXT((Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2, (UInt32)v3);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform4uiEXT")]
            public static 
            void Uniform4(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4uiEXT((Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2, (UInt32)v3);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform4uivEXT")]
            public static 
            unsafe void Uniform4(Int32 location, Int32 count, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4uivEXT((Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform4uivEXT")]
            public static 
            void Uniform4(Int32 location, Int32 count, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glUniform4uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform4uivEXT")]
            public static 
            void Uniform4(Int32 location, Int32 count, ref Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glUniform4uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform4uivEXT")]
            public static 
            void Uniform4(Int32 location, Int32 count, ref UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = &value)
                    {
                        Delegates.glUniform4uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform4uivEXT")]
            public static 
            unsafe void Uniform4(Int32 location, Int32 count, UInt32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4uivEXT((Int32)location, (Int32)count, (UInt32*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the value of a uniform variable for the current program object
        /// </summary>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified uniform variable.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtGpuShader4", Version = "2.0", EntryPoint = "glUniform4uivEXT")]
            public static 
            void Uniform4(Int32 location, Int32 count, UInt32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* value_ptr = value)
                    {
                        Delegates.glUniform4uivEXT((Int32)location, (Int32)count, (UInt32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtBindableUniform", Version = "2.0", EntryPoint = "glUniformBufferEXT")]
            public static 
            void UniformBuffer(Int32 program, Int32 location, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformBufferEXT((UInt32)program, (Int32)location, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtBindableUniform", Version = "2.0", EntryPoint = "glUniformBufferEXT")]
            public static 
            void UniformBuffer(UInt32 program, Int32 location, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformBufferEXT((UInt32)program, (Int32)location, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtCompiledVertexArray", Version = "1.1", EntryPoint = "glUnlockArraysEXT")]
            public static 
            void UnlockArrays()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUnlockArraysEXT();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glUnmapNamedBufferEXT")]
            public static 
            bool UnmapNamedBuffer(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glUnmapNamedBufferEXT((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtDirectStateAccess", Version = "", EntryPoint = "glUnmapNamedBufferEXT")]
            public static 
            bool UnmapNamedBuffer(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glUnmapNamedBufferEXT((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantbvEXT")]
            public static 
            void Variant(UInt32 id, ref SByte addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* addr_ptr = &addr)
                    {
                        Delegates.glVariantbvEXT((UInt32)id, (SByte*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantbvEXT")]
            public static 
            unsafe void Variant(UInt32 id, SByte* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantbvEXT((UInt32)id, (SByte*)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantbvEXT")]
            public static 
            void Variant(UInt32 id, SByte[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* addr_ptr = addr)
                    {
                        Delegates.glVariantbvEXT((UInt32)id, (SByte*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantdvEXT")]
            public static 
            unsafe void Variant(Int32 id, Double* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantdvEXT((UInt32)id, (Double*)addr);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantdvEXT")]
            public static 
            void Variant(Int32 id, Double[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* addr_ptr = addr)
                    {
                        Delegates.glVariantdvEXT((UInt32)id, (Double*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantdvEXT")]
            public static 
            void Variant(Int32 id, ref Double addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* addr_ptr = &addr)
                    {
                        Delegates.glVariantdvEXT((UInt32)id, (Double*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantdvEXT")]
            public static 
            unsafe void Variant(UInt32 id, Double* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantdvEXT((UInt32)id, (Double*)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantdvEXT")]
            public static 
            void Variant(UInt32 id, Double[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* addr_ptr = addr)
                    {
                        Delegates.glVariantdvEXT((UInt32)id, (Double*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantdvEXT")]
            public static 
            void Variant(UInt32 id, ref Double addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* addr_ptr = &addr)
                    {
                        Delegates.glVariantdvEXT((UInt32)id, (Double*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantfvEXT")]
            public static 
            void Variant(Int32 id, ref Single addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* addr_ptr = &addr)
                    {
                        Delegates.glVariantfvEXT((UInt32)id, (Single*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantfvEXT")]
            public static 
            unsafe void Variant(Int32 id, Single* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantfvEXT((UInt32)id, (Single*)addr);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantfvEXT")]
            public static 
            void Variant(Int32 id, Single[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* addr_ptr = addr)
                    {
                        Delegates.glVariantfvEXT((UInt32)id, (Single*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantfvEXT")]
            public static 
            void Variant(UInt32 id, ref Single addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* addr_ptr = &addr)
                    {
                        Delegates.glVariantfvEXT((UInt32)id, (Single*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantfvEXT")]
            public static 
            unsafe void Variant(UInt32 id, Single* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantfvEXT((UInt32)id, (Single*)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantfvEXT")]
            public static 
            void Variant(UInt32 id, Single[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* addr_ptr = addr)
                    {
                        Delegates.glVariantfvEXT((UInt32)id, (Single*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantivEXT")]
            public static 
            unsafe void Variant(Int32 id, Int32* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantivEXT((UInt32)id, (Int32*)addr);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantivEXT")]
            public static 
            void Variant(Int32 id, Int32[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* addr_ptr = addr)
                    {
                        Delegates.glVariantivEXT((UInt32)id, (Int32*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantivEXT")]
            public static 
            void Variant(Int32 id, ref Int32 addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* addr_ptr = &addr)
                    {
                        Delegates.glVariantivEXT((UInt32)id, (Int32*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantivEXT")]
            public static 
            unsafe void Variant(UInt32 id, Int32* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantivEXT((UInt32)id, (Int32*)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantivEXT")]
            public static 
            void Variant(UInt32 id, Int32[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* addr_ptr = addr)
                    {
                        Delegates.glVariantivEXT((UInt32)id, (Int32*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantivEXT")]
            public static 
            void Variant(UInt32 id, ref Int32 addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* addr_ptr = &addr)
                    {
                        Delegates.glVariantivEXT((UInt32)id, (Int32*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(Int32 id, ExtVertexShader type, Int32 stride, [In, Out] ref T3 addr)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(Int32 id, ExtVertexShader type, Int32 stride, [In, Out] T3[,,] addr)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(Int32 id, ExtVertexShader type, Int32 stride, [In, Out] T3[,] addr)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(Int32 id, ExtVertexShader type, Int32 stride, [In, Out] T3[] addr)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer(Int32 id, ExtVertexShader type, Int32 stride, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(UInt32 id, ExtVertexShader type, UInt32 stride, [In, Out] ref T3 addr)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(UInt32 id, ExtVertexShader type, UInt32 stride, [In, Out] T3[,,] addr)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(UInt32 id, ExtVertexShader type, UInt32 stride, [In, Out] T3[,] addr)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(UInt32 id, ExtVertexShader type, UInt32 stride, [In, Out] T3[] addr)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle addr_ptr = GCHandle.Alloc(addr, GCHandleType.Pinned);
                try
                {
                    Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer(UInt32 id, ExtVertexShader type, UInt32 stride, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantPointerEXT((UInt32)id, (ExtVertexShader)type, (UInt32)stride, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantsvEXT")]
            public static 
            unsafe void Variant(Int32 id, Int16* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantsvEXT((UInt32)id, (Int16*)addr);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantsvEXT")]
            public static 
            void Variant(Int32 id, Int16[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* addr_ptr = addr)
                    {
                        Delegates.glVariantsvEXT((UInt32)id, (Int16*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantsvEXT")]
            public static 
            void Variant(Int32 id, ref Int16 addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* addr_ptr = &addr)
                    {
                        Delegates.glVariantsvEXT((UInt32)id, (Int16*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantsvEXT")]
            public static 
            unsafe void Variant(UInt32 id, Int16* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantsvEXT((UInt32)id, (Int16*)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantsvEXT")]
            public static 
            void Variant(UInt32 id, Int16[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* addr_ptr = addr)
                    {
                        Delegates.glVariantsvEXT((UInt32)id, (Int16*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantsvEXT")]
            public static 
            void Variant(UInt32 id, ref Int16 addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* addr_ptr = &addr)
                    {
                        Delegates.glVariantsvEXT((UInt32)id, (Int16*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantubvEXT")]
            public static 
            unsafe void Variant(Int32 id, Byte* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantubvEXT((UInt32)id, (Byte*)addr);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantubvEXT")]
            public static 
            void Variant(Int32 id, Byte[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* addr_ptr = addr)
                    {
                        Delegates.glVariantubvEXT((UInt32)id, (Byte*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantubvEXT")]
            public static 
            void Variant(Int32 id, ref Byte addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* addr_ptr = &addr)
                    {
                        Delegates.glVariantubvEXT((UInt32)id, (Byte*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantubvEXT")]
            public static 
            unsafe void Variant(UInt32 id, Byte* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantubvEXT((UInt32)id, (Byte*)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantubvEXT")]
            public static 
            void Variant(UInt32 id, Byte[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* addr_ptr = addr)
                    {
                        Delegates.glVariantubvEXT((UInt32)id, (Byte*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantubvEXT")]
            public static 
            void Variant(UInt32 id, ref Byte addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* addr_ptr = &addr)
                    {
                        Delegates.glVariantubvEXT((UInt32)id, (Byte*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantuivEXT")]
            public static 
            void Variant(UInt32 id, ref UInt32 addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* addr_ptr = &addr)
                    {
                        Delegates.glVariantuivEXT((UInt32)id, (UInt32*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantuivEXT")]
            public static 
            unsafe void Variant(UInt32 id, UInt32* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantuivEXT((UInt32)id, (UInt32*)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantuivEXT")]
            public static 
            void Variant(UInt32 id, UInt32[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* addr_ptr = addr)
                    {
                        Delegates.glVariantuivEXT((UInt32)id, (UInt32*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantusvEXT")]
            public static 
            void Variant(UInt32 id, ref UInt16 addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* addr_ptr = &addr)
                    {
                        Delegates.glVariantusvEXT((UInt32)id, (UInt16*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantusvEXT")]
            public static 
            unsafe void Variant(UInt32 id, UInt16* addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantusvEXT((UInt32)id, (UInt16*)addr);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glVariantusvEXT")]
            public static 
            void Variant(UInt32 id, UInt16[] addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* addr_ptr = addr)
                    {
                        Delegates.glVariantusvEXT((UInt32)id, (UInt16*)addr_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI1iEXT")]
            public static 
            void VertexAttribI1(Int32 index, Int32 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI1iEXT((UInt32)index, (Int32)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI1iEXT")]
            public static 
            void VertexAttribI1(UInt32 index, Int32 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI1iEXT((UInt32)index, (Int32)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI1ivEXT")]
            public static 
            unsafe void VertexAttribI1(Int32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI1ivEXT((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI1ivEXT")]
            public static 
            unsafe void VertexAttribI1(UInt32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI1ivEXT((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI1uiEXT")]
            public static 
            void VertexAttribI1(UInt32 index, UInt32 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI1uiEXT((UInt32)index, (UInt32)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI1uivEXT")]
            public static 
            unsafe void VertexAttribI1(UInt32 index, UInt32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI1uivEXT((UInt32)index, (UInt32*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2iEXT")]
            public static 
            void VertexAttribI2(Int32 index, Int32 x, Int32 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI2iEXT((UInt32)index, (Int32)x, (Int32)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2iEXT")]
            public static 
            void VertexAttribI2(UInt32 index, Int32 x, Int32 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI2iEXT((UInt32)index, (Int32)x, (Int32)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
            public static 
            unsafe void VertexAttribI2(Int32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI2ivEXT((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
            public static 
            void VertexAttribI2(Int32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI2ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
            public static 
            void VertexAttribI2(Int32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI2ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
            public static 
            unsafe void VertexAttribI2(UInt32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI2ivEXT((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
            public static 
            void VertexAttribI2(UInt32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI2ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
            public static 
            void VertexAttribI2(UInt32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI2ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2uiEXT")]
            public static 
            void VertexAttribI2(UInt32 index, UInt32 x, UInt32 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI2uiEXT((UInt32)index, (UInt32)x, (UInt32)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2uivEXT")]
            public static 
            void VertexAttribI2(UInt32 index, ref UInt32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI2uivEXT((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2uivEXT")]
            public static 
            unsafe void VertexAttribI2(UInt32 index, UInt32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI2uivEXT((UInt32)index, (UInt32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI2uivEXT")]
            public static 
            void VertexAttribI2(UInt32 index, UInt32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI2uivEXT((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3iEXT")]
            public static 
            void VertexAttribI3(Int32 index, Int32 x, Int32 y, Int32 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI3iEXT((UInt32)index, (Int32)x, (Int32)y, (Int32)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3iEXT")]
            public static 
            void VertexAttribI3(UInt32 index, Int32 x, Int32 y, Int32 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI3iEXT((UInt32)index, (Int32)x, (Int32)y, (Int32)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
            public static 
            unsafe void VertexAttribI3(Int32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI3ivEXT((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
            public static 
            void VertexAttribI3(Int32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI3ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
            public static 
            void VertexAttribI3(Int32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI3ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
            public static 
            unsafe void VertexAttribI3(UInt32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI3ivEXT((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
            public static 
            void VertexAttribI3(UInt32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI3ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
            public static 
            void VertexAttribI3(UInt32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI3ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3uiEXT")]
            public static 
            void VertexAttribI3(UInt32 index, UInt32 x, UInt32 y, UInt32 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI3uiEXT((UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3uivEXT")]
            public static 
            void VertexAttribI3(UInt32 index, ref UInt32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI3uivEXT((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3uivEXT")]
            public static 
            unsafe void VertexAttribI3(UInt32 index, UInt32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI3uivEXT((UInt32)index, (UInt32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI3uivEXT")]
            public static 
            void VertexAttribI3(UInt32 index, UInt32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI3uivEXT((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4bvEXT")]
            public static 
            void VertexAttribI4(UInt32 index, ref SByte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4bvEXT((UInt32)index, (SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4bvEXT")]
            public static 
            unsafe void VertexAttribI4(UInt32 index, SByte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4bvEXT((UInt32)index, (SByte*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4bvEXT")]
            public static 
            void VertexAttribI4(UInt32 index, SByte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4bvEXT((UInt32)index, (SByte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4iEXT")]
            public static 
            void VertexAttribI4(Int32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4iEXT((UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4iEXT")]
            public static 
            void VertexAttribI4(UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4iEXT((UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
            public static 
            unsafe void VertexAttribI4(Int32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4ivEXT((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
            public static 
            void VertexAttribI4(Int32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
            public static 
            void VertexAttribI4(Int32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
            public static 
            unsafe void VertexAttribI4(UInt32 index, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4ivEXT((UInt32)index, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
            public static 
            void VertexAttribI4(UInt32 index, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
            public static 
            void VertexAttribI4(UInt32 index, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4ivEXT((UInt32)index, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
            public static 
            unsafe void VertexAttribI4(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4svEXT((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
            public static 
            void VertexAttribI4(Int32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4svEXT((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
            public static 
            void VertexAttribI4(Int32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4svEXT((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
            public static 
            unsafe void VertexAttribI4(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4svEXT((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
            public static 
            void VertexAttribI4(UInt32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4svEXT((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
            public static 
            void VertexAttribI4(UInt32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4svEXT((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
            public static 
            unsafe void VertexAttribI4(Int32 index, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4ubvEXT((UInt32)index, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
            public static 
            void VertexAttribI4(Int32 index, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4ubvEXT((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
            public static 
            void VertexAttribI4(Int32 index, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4ubvEXT((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
            public static 
            unsafe void VertexAttribI4(UInt32 index, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4ubvEXT((UInt32)index, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
            public static 
            void VertexAttribI4(UInt32 index, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4ubvEXT((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
            public static 
            void VertexAttribI4(UInt32 index, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4ubvEXT((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4uiEXT")]
            public static 
            void VertexAttribI4(UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4uiEXT((UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z, (UInt32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4uivEXT")]
            public static 
            void VertexAttribI4(UInt32 index, ref UInt32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4uivEXT((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4uivEXT")]
            public static 
            unsafe void VertexAttribI4(UInt32 index, UInt32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4uivEXT((UInt32)index, (UInt32*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4uivEXT")]
            public static 
            void VertexAttribI4(UInt32 index, UInt32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4uivEXT((UInt32)index, (UInt32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4usvEXT")]
            public static 
            void VertexAttribI4(UInt32 index, ref UInt16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribI4usvEXT((UInt32)index, (UInt16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4usvEXT")]
            public static 
            unsafe void VertexAttribI4(UInt32 index, UInt16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribI4usvEXT((UInt32)index, (UInt16*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribI4usvEXT")]
            public static 
            void VertexAttribI4(UInt32 index, UInt16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* v_ptr = v)
                    {
                        Delegates.glVertexAttribI4usvEXT((UInt32)index, (UInt16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(Int32 index, Int32 size, NvVertexProgram4 type, Int32 stride, [In, Out] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(Int32 index, Int32 size, NvVertexProgram4 type, Int32 stride, [In, Out] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(Int32 index, Int32 size, NvVertexProgram4 type, Int32 stride, [In, Out] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(Int32 index, Int32 size, NvVertexProgram4 type, Int32 stride, [In, Out] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer(Int32 index, Int32 size, NvVertexProgram4 type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(UInt32 index, Int32 size, NvVertexProgram4 type, Int32 stride, [In, Out] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(UInt32 index, Int32 size, NvVertexProgram4 type, Int32 stride, [In, Out] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(UInt32 index, Int32 size, NvVertexProgram4 type, Int32 stride, [In, Out] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(UInt32 index, Int32 size, NvVertexProgram4 type, Int32 stride, [In, Out] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer(UInt32 index, Int32 size, NvVertexProgram4 type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer<T4>(Int32 size, VertexPointerType type, Int32 stride, Int32 count, [In, Out] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointerEXT((Int32)size, (VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer<T4>(Int32 size, VertexPointerType type, Int32 stride, Int32 count, [In, Out] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointerEXT((Int32)size, (VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer<T4>(Int32 size, VertexPointerType type, Int32 stride, Int32 count, [In, Out] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointerEXT((Int32)size, (VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer<T4>(Int32 size, VertexPointerType type, Int32 stride, Int32 count, [In, Out] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointerEXT((Int32)size, (VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ExtVertexArray", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer(Int32 size, VertexPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexPointerEXT((Int32)size, (VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexWeighting", Version = "1.1", EntryPoint = "glVertexWeightfEXT")]
            public static 
            void VertexWeight(Single weight)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexWeightfEXT((Single)weight);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexWeighting", Version = "1.1", EntryPoint = "glVertexWeightfvEXT")]
            public static 
            unsafe void VertexWeight(Single* weight)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexWeightfvEXT((Single*)weight);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexWeighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer<T3>(Int32 size, ExtVertexWeighting type, Int32 stride, [In, Out] ref T3 pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexWeightPointerEXT((Int32)size, (ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexWeighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer<T3>(Int32 size, ExtVertexWeighting type, Int32 stride, [In, Out] T3[,,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexWeightPointerEXT((Int32)size, (ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexWeighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer<T3>(Int32 size, ExtVertexWeighting type, Int32 stride, [In, Out] T3[,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexWeightPointerEXT((Int32)size, (ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexWeighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer<T3>(Int32 size, ExtVertexWeighting type, Int32 stride, [In, Out] T3[] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexWeightPointerEXT((Int32)size, (ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexWeighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer(Int32 size, ExtVertexWeighting type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexWeightPointerEXT((Int32)size, (ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glWriteMaskEXT")]
            public static 
            void WriteMask(Int32 res, Int32 @in, ExtVertexShader outX, ExtVertexShader outY, ExtVertexShader outZ, ExtVertexShader outW)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWriteMaskEXT((UInt32)res, (UInt32)@in, (ExtVertexShader)outX, (ExtVertexShader)outY, (ExtVertexShader)outZ, (ExtVertexShader)outW);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ExtVertexShader", Version = "1.2", EntryPoint = "glWriteMaskEXT")]
            public static 
            void WriteMask(UInt32 res, UInt32 @in, ExtVertexShader outX, ExtVertexShader outY, ExtVertexShader outZ, ExtVertexShader outW)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWriteMaskEXT((UInt32)res, (UInt32)@in, (ExtVertexShader)outX, (ExtVertexShader)outY, (ExtVertexShader)outZ, (ExtVertexShader)outW);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Gremedy
        {
            [AutoGenerated(Category = "GremedyFrameTerminator", Version = "1.0", EntryPoint = "glFrameTerminatorGREMEDY")]
            public static 
            void FrameTerminator()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFrameTerminatorGREMEDY();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "GremedyStringMarker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker<T1>(Int32 len, [In, Out] ref T1 @string)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glStringMarkerGREMEDY((Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "GremedyStringMarker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker<T1>(Int32 len, [In, Out] T1[,,] @string)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glStringMarkerGREMEDY((Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "GremedyStringMarker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker<T1>(Int32 len, [In, Out] T1[,] @string)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glStringMarkerGREMEDY((Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "GremedyStringMarker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker<T1>(Int32 len, [In, Out] T1[] @string)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @string_ptr = GCHandle.Alloc(@string, GCHandleType.Pinned);
                try
                {
                    Delegates.glStringMarkerGREMEDY((Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "GremedyStringMarker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker(Int32 len, IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStringMarkerGREMEDY((Int32)len, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class HP
        {
            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glGetImageTransformParameterfvHP")]
            public static 
            void GetImageTransformParameter(HpImageTransform target, HpImageTransform pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetImageTransformParameterfvHP((HpImageTransform)target, (HpImageTransform)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glGetImageTransformParameterfvHP")]
            public static 
            unsafe void GetImageTransformParameter(HpImageTransform target, HpImageTransform pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetImageTransformParameterfvHP((HpImageTransform)target, (HpImageTransform)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glGetImageTransformParameterfvHP")]
            public static 
            void GetImageTransformParameter(HpImageTransform target, HpImageTransform pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetImageTransformParameterfvHP((HpImageTransform)target, (HpImageTransform)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glGetImageTransformParameterivHP")]
            public static 
            unsafe void GetImageTransformParameter(HpImageTransform target, HpImageTransform pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetImageTransformParameterivHP((HpImageTransform)target, (HpImageTransform)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glGetImageTransformParameterivHP")]
            public static 
            void GetImageTransformParameter(HpImageTransform target, HpImageTransform pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetImageTransformParameterivHP((HpImageTransform)target, (HpImageTransform)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glGetImageTransformParameterivHP")]
            public static 
            void GetImageTransformParameter(HpImageTransform target, HpImageTransform pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetImageTransformParameterivHP((HpImageTransform)target, (HpImageTransform)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glImageTransformParameterfHP")]
            public static 
            void ImageTransformParameter(HpImageTransform target, HpImageTransform pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glImageTransformParameterfHP((HpImageTransform)target, (HpImageTransform)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glImageTransformParameterfvHP")]
            public static 
            unsafe void ImageTransformParameter(HpImageTransform target, HpImageTransform pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glImageTransformParameterfvHP((HpImageTransform)target, (HpImageTransform)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glImageTransformParameterfvHP")]
            public static 
            void ImageTransformParameter(HpImageTransform target, HpImageTransform pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glImageTransformParameterfvHP((HpImageTransform)target, (HpImageTransform)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glImageTransformParameteriHP")]
            public static 
            void ImageTransformParameter(HpImageTransform target, HpImageTransform pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glImageTransformParameteriHP((HpImageTransform)target, (HpImageTransform)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glImageTransformParameterivHP")]
            public static 
            unsafe void ImageTransformParameter(HpImageTransform target, HpImageTransform pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glImageTransformParameterivHP((HpImageTransform)target, (HpImageTransform)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "HpImageTransform", Version = "1.1", EntryPoint = "glImageTransformParameterivHP")]
            public static 
            void ImageTransformParameter(HpImageTransform target, HpImageTransform pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glImageTransformParameterivHP((HpImageTransform)target, (HpImageTransform)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Ibm
        {
            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] ref T3 pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointerListIBM((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[,,] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointerListIBM((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[,] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointerListIBM((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList<T3>(Int32 size, ColorPointerType type, Int32 stride, [In, Out] T3[] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointerListIBM((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList(Int32 size, ColorPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorPointerListIBM((Int32)size, (ColorPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glEdgeFlagPointerListIBM")]
            public static 
            unsafe void EdgeFlagPointerList(Int32 stride, bool* pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEdgeFlagPointerListIBM((Int32)stride, (bool*)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glEdgeFlagPointerListIBM")]
            public static 
            void EdgeFlagPointerList(Int32 stride, bool[] pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* pointer_ptr = pointer)
                    {
                        Delegates.glEdgeFlagPointerListIBM((Int32)stride, (bool*)pointer_ptr, (Int32)ptrstride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glEdgeFlagPointerListIBM")]
            public static 
            void EdgeFlagPointerList(Int32 stride, ref bool pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* pointer_ptr = &pointer)
                    {
                        Delegates.glEdgeFlagPointerListIBM((Int32)stride, (bool*)pointer_ptr, (Int32)ptrstride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList<T2>(IbmVertexArrayLists type, Int32 stride, [In, Out] ref T2 pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerListIBM((IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList<T2>(IbmVertexArrayLists type, Int32 stride, [In, Out] T2[,,] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerListIBM((IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList<T2>(IbmVertexArrayLists type, Int32 stride, [In, Out] T2[,] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerListIBM((IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList<T2>(IbmVertexArrayLists type, Int32 stride, [In, Out] T2[] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerListIBM((IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList(IbmVertexArrayLists type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordPointerListIBM((IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList<T2>(IndexPointerType type, Int32 stride, [In, Out] ref T2 pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerListIBM((IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList<T2>(IndexPointerType type, Int32 stride, [In, Out] T2[,,] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerListIBM((IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList<T2>(IndexPointerType type, Int32 stride, [In, Out] T2[,] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerListIBM((IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList<T2>(IndexPointerType type, Int32 stride, [In, Out] T2[] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerListIBM((IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList(IndexPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexPointerListIBM((IndexPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawArraysIBM")]
            public static 
            unsafe void MultiModeDrawArrays(BeginMode* mode, Int32* first, Int32* count, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiModeDrawArraysIBM((BeginMode*)mode, (Int32*)first, (Int32*)count, (Int32)primcount, (Int32)modestride);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawArraysIBM")]
            public static 
            void MultiModeDrawArrays(BeginMode[] mode, Int32[] first, Int32[] count, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = mode)
                    fixed (Int32* first_ptr = first)
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiModeDrawArraysIBM((BeginMode*)mode_ptr, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount, (Int32)modestride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawArraysIBM")]
            public static 
            void MultiModeDrawArrays(ref BeginMode mode, ref Int32 first, ref Int32 count, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = &mode)
                    fixed (Int32* first_ptr = &first)
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiModeDrawArraysIBM((BeginMode*)mode_ptr, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount, (Int32)modestride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements<T3>(BeginMode* mode, Int32* count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements<T3>(BeginMode* mode, Int32* count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements<T3>(BeginMode* mode, Int32* count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements<T3>(BeginMode* mode, Int32* count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements(BeginMode* mode, Int32* count, DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode, (Int32*)count, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32)modestride);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(BeginMode[] mode, Int32[] count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(BeginMode[] mode, Int32[] count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(BeginMode[] mode, Int32[] count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(BeginMode[] mode, Int32[] count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements(BeginMode[] mode, Int32[] count, DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32)modestride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(ref BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] ref T3 indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(ref BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[,,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(ref BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(ref BeginMode mode, ref Int32 count, DrawElementsType type, [In, Out] T3[] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmMultimodeDrawArrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements(ref BeginMode mode, ref Int32 count, DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (BeginMode* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiModeDrawElementsIBM((BeginMode*)mode_ptr, (Int32*)count_ptr, (DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32)modestride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList<T2>(NormalPointerType type, Int32 stride, [In, Out] ref T2 pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerListIBM((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[,,] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerListIBM((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[,] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerListIBM((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList<T2>(NormalPointerType type, Int32 stride, [In, Out] T2[] pointer, Int32 ptrstride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerListIBM((NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList(NormalPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalPointerListIBM((NormalPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList<T3>(Int32 size, IbmVertexArrayLists type, Int32 stride, [In, Out] ref T3 pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glSecondaryColorPointerListIBM((Int32)size, (IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList<T3>(Int32 size, IbmVertexArrayLists type, Int32 stride, [In, Out] T3[,,] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glSecondaryColorPointerListIBM((Int32)size, (IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList<T3>(Int32 size, IbmVertexArrayLists type, Int32 stride, [In, Out] T3[,] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glSecondaryColorPointerListIBM((Int32)size, (IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList<T3>(Int32 size, IbmVertexArrayLists type, Int32 stride, [In, Out] T3[] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glSecondaryColorPointerListIBM((Int32)size, (IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList(Int32 size, IbmVertexArrayLists type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColorPointerListIBM((Int32)size, (IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList<T3>(Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] ref T3 pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointerListIBM((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList<T3>(Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T3[,,] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointerListIBM((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList<T3>(Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T3[,] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointerListIBM((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList<T3>(Int32 size, TexCoordPointerType type, Int32 stride, [In, Out] T3[] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointerListIBM((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList(Int32 size, TexCoordPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoordPointerListIBM((Int32)size, (TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList<T3>(Int32 size, VertexPointerType type, Int32 stride, [In, Out] ref T3 pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointerListIBM((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList<T3>(Int32 size, VertexPointerType type, Int32 stride, [In, Out] T3[,,] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointerListIBM((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList<T3>(Int32 size, VertexPointerType type, Int32 stride, [In, Out] T3[,] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointerListIBM((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList<T3>(Int32 size, VertexPointerType type, Int32 stride, [In, Out] T3[] pointer, Int32 ptrstride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointerListIBM((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "IbmVertexArrayLists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList(Int32 size, VertexPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexPointerListIBM((Int32)size, (VertexPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Ingr
        {
            
        /// <summary>
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstRGB">
        /// <para>
        /// Specifies how the red, green, and blue destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The same symbolic constants are accepted as for srcRGB. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The same symbolic constants are accepted as for dstRGB. The initial value is GL_ZERO.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IngrBlendFuncSeparate", Version = "1.0", EntryPoint = "glBlendFuncSeparateINGR")]
            public static 
            void BlendFuncSeparate(All sfactorRGB, All dfactorRGB, All sfactorAlpha, All dfactorAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateINGR((All)sfactorRGB, (All)dfactorRGB, (All)sfactorAlpha, (All)dfactorAlpha);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Intel
        {
            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer<T2>(Int32 size, VertexPointerType type, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of colors
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per color. Must be 3 or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer(Int32 size, VertexPointerType type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer<T1>(NormalPointerType type, [In, Out] ref T1 pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointervINTEL((NormalPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer<T1>(NormalPointerType type, [In, Out] T1[,,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointervINTEL((NormalPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer<T1>(NormalPointerType type, [In, Out] T1[,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointervINTEL((NormalPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer<T1>(NormalPointerType type, [In, Out] T1[] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointervINTEL((NormalPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of normals
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer(NormalPointerType type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalPointervINTEL((NormalPointerType)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer<T2>(Int32 size, VertexPointerType type, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexCoordPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of texture coordinates
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per array element. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each texture coordinate. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer(Int32 size, VertexPointerType type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoordPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer<T2>(Int32 size, VertexPointerType type, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer<T2>(Int32 size, VertexPointerType type, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of vertex data
        /// </summary>
        /// <param name="size">
        /// <para>
        /// Specifies the number of coordinates per vertex. Must be 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each coordinate in the array. Symbolic constants GL_SHORT, GL_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "IntelParallelArrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer(Int32 size, VertexPointerType type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexPointervINTEL((Int32)size, (VertexPointerType)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Mesa
        {
            [AutoGenerated(Category = "MesaResizeBuffers", Version = "1.0", EntryPoint = "glResizeBuffersMESA")]
            public static 
            void ResizeBuffers()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glResizeBuffersMESA();
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2dMESA")]
            public static 
            void WindowPos2(Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2dMESA((Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2dvMESA")]
            public static 
            unsafe void WindowPos2(Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2dvMESA((Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2dvMESA")]
            public static 
            void WindowPos2(Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glWindowPos2dvMESA((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2dvMESA")]
            public static 
            void WindowPos2(ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glWindowPos2dvMESA((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2fMESA")]
            public static 
            void WindowPos2(Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2fMESA((Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2fvMESA")]
            public static 
            void WindowPos2(ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glWindowPos2fvMESA((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2fvMESA")]
            public static 
            unsafe void WindowPos2(Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2fvMESA((Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2fvMESA")]
            public static 
            void WindowPos2(Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glWindowPos2fvMESA((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2iMESA")]
            public static 
            void WindowPos2(Int32 x, Int32 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2iMESA((Int32)x, (Int32)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2ivMESA")]
            public static 
            unsafe void WindowPos2(Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2ivMESA((Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2ivMESA")]
            public static 
            void WindowPos2(Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glWindowPos2ivMESA((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2ivMESA")]
            public static 
            void WindowPos2(ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glWindowPos2ivMESA((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2sMESA")]
            public static 
            void WindowPos2(Int16 x, Int16 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2sMESA((Int16)x, (Int16)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2svMESA")]
            public static 
            unsafe void WindowPos2(Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos2svMESA((Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2svMESA")]
            public static 
            void WindowPos2(Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glWindowPos2svMESA((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos2svMESA")]
            public static 
            void WindowPos2(ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glWindowPos2svMESA((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3dMESA")]
            public static 
            void WindowPos3(Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3dMESA((Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3dvMESA")]
            public static 
            unsafe void WindowPos3(Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3dvMESA((Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3dvMESA")]
            public static 
            void WindowPos3(Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glWindowPos3dvMESA((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3dvMESA")]
            public static 
            void WindowPos3(ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glWindowPos3dvMESA((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3fMESA")]
            public static 
            void WindowPos3(Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3fMESA((Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3fvMESA")]
            public static 
            void WindowPos3(ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glWindowPos3fvMESA((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3fvMESA")]
            public static 
            unsafe void WindowPos3(Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3fvMESA((Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3fvMESA")]
            public static 
            void WindowPos3(Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glWindowPos3fvMESA((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3iMESA")]
            public static 
            void WindowPos3(Int32 x, Int32 y, Int32 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3iMESA((Int32)x, (Int32)y, (Int32)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3ivMESA")]
            public static 
            unsafe void WindowPos3(Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3ivMESA((Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3ivMESA")]
            public static 
            void WindowPos3(Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glWindowPos3ivMESA((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3ivMESA")]
            public static 
            void WindowPos3(ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glWindowPos3ivMESA((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3sMESA")]
            public static 
            void WindowPos3(Int16 x, Int16 y, Int16 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3sMESA((Int16)x, (Int16)y, (Int16)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3svMESA")]
            public static 
            unsafe void WindowPos3(Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos3svMESA((Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3svMESA")]
            public static 
            void WindowPos3(Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glWindowPos3svMESA((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos3svMESA")]
            public static 
            void WindowPos3(ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glWindowPos3svMESA((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4dMESA")]
            public static 
            void WindowPos4(Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos4dMESA((Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4dvMESA")]
            public static 
            unsafe void WindowPos4(Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos4dvMESA((Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4dvMESA")]
            public static 
            void WindowPos4(Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glWindowPos4dvMESA((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4dvMESA")]
            public static 
            void WindowPos4(ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glWindowPos4dvMESA((Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4fMESA")]
            public static 
            void WindowPos4(Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos4fMESA((Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4fvMESA")]
            public static 
            void WindowPos4(ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glWindowPos4fvMESA((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4fvMESA")]
            public static 
            unsafe void WindowPos4(Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos4fvMESA((Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4fvMESA")]
            public static 
            void WindowPos4(Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glWindowPos4fvMESA((Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4iMESA")]
            public static 
            void WindowPos4(Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos4iMESA((Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4ivMESA")]
            public static 
            unsafe void WindowPos4(Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos4ivMESA((Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4ivMESA")]
            public static 
            void WindowPos4(Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glWindowPos4ivMESA((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4ivMESA")]
            public static 
            void WindowPos4(ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glWindowPos4ivMESA((Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4sMESA")]
            public static 
            void WindowPos4(Int16 x, Int16 y, Int16 z, Int16 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos4sMESA((Int16)x, (Int16)y, (Int16)z, (Int16)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4svMESA")]
            public static 
            unsafe void WindowPos4(Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWindowPos4svMESA((Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4svMESA")]
            public static 
            void WindowPos4(Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glWindowPos4svMESA((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the raster position in window coordinates for pixel operations
        /// </summary>
        /// <param name="x">
        /// <para>
        /// Specify the , , coordinates for the raster position.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "MesaWindowPos", Version = "1.0", EntryPoint = "glWindowPos4svMESA")]
            public static 
            void WindowPos4(ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glWindowPos4svMESA((Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class NV
        {
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glActiveVaryingNV")]
            public static 
            void ActiveVarying(Int32 program, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glActiveVaryingNV((UInt32)program, (String)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glActiveVaryingNV")]
            public static 
            void ActiveVarying(UInt32 program, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glActiveVaryingNV((UInt32)program, (String)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            unsafe bool AreProgramsResident(Int32 n, Int32* programs, [Out] bool* residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glAreProgramsResidentNV((Int32)n, (UInt32*)programs, (bool*)residences);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            bool AreProgramsResident(Int32 n, Int32[] programs, [Out] bool[] residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = programs)
                    fixed (bool* residences_ptr = residences)
                    {
                        return Delegates.glAreProgramsResidentNV((Int32)n, (UInt32*)programs_ptr, (bool*)residences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            bool AreProgramsResident(Int32 n, ref Int32 programs, [Out] out bool residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = &programs)
                    fixed (bool* residences_ptr = &residences)
                    {
                        bool retval = Delegates.glAreProgramsResidentNV((Int32)n, (UInt32*)programs_ptr, (bool*)residences_ptr);
                        residences = *residences_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            bool AreProgramsResident(Int32 n, ref UInt32 programs, [Out] out bool residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = &programs)
                    fixed (bool* residences_ptr = &residences)
                    {
                        bool retval = Delegates.glAreProgramsResidentNV((Int32)n, (UInt32*)programs_ptr, (bool*)residences_ptr);
                        residences = *residences_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            unsafe bool AreProgramsResident(Int32 n, UInt32* programs, [Out] bool* residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glAreProgramsResidentNV((Int32)n, (UInt32*)programs, (bool*)residences);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            bool AreProgramsResident(Int32 n, UInt32[] programs, [Out] bool[] residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = programs)
                    fixed (bool* residences_ptr = residences)
                    {
                        return Delegates.glAreProgramsResidentNV((Int32)n, (UInt32*)programs_ptr, (bool*)residences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvConditionalRender", Version = "", EntryPoint = "glBeginConditionalRenderNV")]
            public static 
            void BeginConditionalRender(Int32 id, NvConditionalRender mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginConditionalRenderNV((UInt32)id, (NvConditionalRender)mode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvConditionalRender", Version = "", EntryPoint = "glBeginConditionalRenderNV")]
            public static 
            void BeginConditionalRender(UInt32 id, NvConditionalRender mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginConditionalRenderNV((UInt32)id, (NvConditionalRender)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glBeginOcclusionQueryNV")]
            public static 
            void BeginOcclusionQuery(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginOcclusionQueryNV((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glBeginOcclusionQueryNV")]
            public static 
            void BeginOcclusionQuery(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginOcclusionQueryNV((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glBeginTransformFeedbackNV")]
            public static 
            void BeginTransformFeedback(NvTransformFeedback primitiveMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginTransformFeedbackNV((NvTransformFeedback)primitiveMode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glBindBufferBaseNV")]
            public static 
            void BindBufferBase(NvTransformFeedback target, Int32 index, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferBaseNV((NvTransformFeedback)target, (UInt32)index, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glBindBufferBaseNV")]
            public static 
            void BindBufferBase(NvTransformFeedback target, UInt32 index, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferBaseNV((NvTransformFeedback)target, (UInt32)index, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glBindBufferOffsetNV")]
            public static 
            void BindBufferOffset(NvTransformFeedback target, Int32 index, Int32 buffer, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferOffsetNV((NvTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glBindBufferOffsetNV")]
            public static 
            void BindBufferOffset(NvTransformFeedback target, UInt32 index, UInt32 buffer, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferOffsetNV((NvTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glBindBufferRangeNV")]
            public static 
            void BindBufferRange(NvTransformFeedback target, Int32 index, Int32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferRangeNV((NvTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glBindBufferRangeNV")]
            public static 
            void BindBufferRange(NvTransformFeedback target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferRangeNV((NvTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glBindProgramNV")]
            public static 
            void BindProgram(AssemblyProgramTargetArb target, Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindProgramNV((AssemblyProgramTargetArb)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glBindProgramNV")]
            public static 
            void BindProgram(AssemblyProgramTargetArb target, UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindProgramNV((AssemblyProgramTargetArb)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glBindTransformFeedbackNV")]
            public static 
            void BindTransformFeedback(NvTransformFeedback2 target, Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindTransformFeedbackNV((NvTransformFeedback2)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glBindTransformFeedbackNV")]
            public static 
            void BindTransformFeedback(NvTransformFeedback2 target, UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindTransformFeedbackNV((NvTransformFeedback2)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify the clear value for the depth buffer
        /// </summary>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth value used when the depth buffer is cleared. The initial value is 1.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvDepthBufferFloat", Version = "2.0", EntryPoint = "glClearDepthdNV")]
            public static 
            void ClearDepth(Double depth)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearDepthdNV((Double)depth);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glColor3hNV")]
            public static 
            void Color3h(OpenTK.Half red, OpenTK.Half green, OpenTK.Half blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor3hNV((OpenTK.Half)red, (OpenTK.Half)green, (OpenTK.Half)blue);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glColor3hvNV")]
            public static 
            unsafe void Color3h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor3hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glColor3hvNV")]
            public static 
            void Color3h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glColor3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glColor3hvNV")]
            public static 
            void Color3h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glColor3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glColor4hNV")]
            public static 
            void Color4h(OpenTK.Half red, OpenTK.Half green, OpenTK.Half blue, OpenTK.Half alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4hNV((OpenTK.Half)red, (OpenTK.Half)green, (OpenTK.Half)blue, (OpenTK.Half)alpha);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glColor4hvNV")]
            public static 
            unsafe void Color4h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glColor4hvNV")]
            public static 
            void Color4h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glColor4hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glColor4hvNV")]
            public static 
            void Color4h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glColor4hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glCombinerInputNV")]
            public static 
            void CombinerInput(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners variable, NvRegisterCombiners input, NvRegisterCombiners mapping, NvRegisterCombiners componentUsage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerInputNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)variable, (NvRegisterCombiners)input, (NvRegisterCombiners)mapping, (NvRegisterCombiners)componentUsage);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glCombinerOutputNV")]
            public static 
            void CombinerOutput(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners abOutput, NvRegisterCombiners cdOutput, NvRegisterCombiners sumOutput, NvRegisterCombiners scale, NvRegisterCombiners bias, bool abDotProduct, bool cdDotProduct, bool muxSum)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerOutputNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)abOutput, (NvRegisterCombiners)cdOutput, (NvRegisterCombiners)sumOutput, (NvRegisterCombiners)scale, (NvRegisterCombiners)bias, (bool)abDotProduct, (bool)cdDotProduct, (bool)muxSum);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glCombinerParameterfNV")]
            public static 
            void CombinerParameter(NvRegisterCombiners pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerParameterfNV((NvRegisterCombiners)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glCombinerParameterfvNV")]
            public static 
            unsafe void CombinerParameter(NvRegisterCombiners pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerParameterfvNV((NvRegisterCombiners)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glCombinerParameterfvNV")]
            public static 
            void CombinerParameter(NvRegisterCombiners pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glCombinerParameterfvNV((NvRegisterCombiners)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glCombinerParameteriNV")]
            public static 
            void CombinerParameter(NvRegisterCombiners pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerParameteriNV((NvRegisterCombiners)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glCombinerParameterivNV")]
            public static 
            unsafe void CombinerParameter(NvRegisterCombiners pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerParameterivNV((NvRegisterCombiners)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glCombinerParameterivNV")]
            public static 
            void CombinerParameter(NvRegisterCombiners pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glCombinerParameterivNV((NvRegisterCombiners)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners2", Version = "1.1", EntryPoint = "glCombinerStageParameterfvNV")]
            public static 
            void CombinerStageParameter(NvRegisterCombiners2 stage, NvRegisterCombiners2 pname, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glCombinerStageParameterfvNV((NvRegisterCombiners2)stage, (NvRegisterCombiners2)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners2", Version = "1.1", EntryPoint = "glCombinerStageParameterfvNV")]
            public static 
            unsafe void CombinerStageParameter(NvRegisterCombiners2 stage, NvRegisterCombiners2 pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerStageParameterfvNV((NvRegisterCombiners2)stage, (NvRegisterCombiners2)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners2", Version = "1.1", EntryPoint = "glCombinerStageParameterfvNV")]
            public static 
            void CombinerStageParameter(NvRegisterCombiners2 stage, NvRegisterCombiners2 pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glCombinerStageParameterfvNV((NvRegisterCombiners2)stage, (NvRegisterCombiners2)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glDeleteFencesNV")]
            public static 
            unsafe void DeleteFences(Int32 n, Int32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteFencesNV((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glDeleteFencesNV")]
            public static 
            void DeleteFences(Int32 n, Int32[] fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* fences_ptr = fences)
                    {
                        Delegates.glDeleteFencesNV((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glDeleteFencesNV")]
            public static 
            void DeleteFences(Int32 n, ref Int32 fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* fences_ptr = &fences)
                    {
                        Delegates.glDeleteFencesNV((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glDeleteFencesNV")]
            public static 
            void DeleteFences(Int32 n, ref UInt32 fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* fences_ptr = &fences)
                    {
                        Delegates.glDeleteFencesNV((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glDeleteFencesNV")]
            public static 
            unsafe void DeleteFences(Int32 n, UInt32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteFencesNV((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glDeleteFencesNV")]
            public static 
            void DeleteFences(Int32 n, UInt32[] fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* fences_ptr = fences)
                    {
                        Delegates.glDeleteFencesNV((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glDeleteOcclusionQueriesNV")]
            public static 
            unsafe void DeleteOcclusionQueries(Int32 n, Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteOcclusionQueriesNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glDeleteOcclusionQueriesNV")]
            public static 
            void DeleteOcclusionQueries(Int32 n, Int32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = ids)
                    {
                        Delegates.glDeleteOcclusionQueriesNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glDeleteOcclusionQueriesNV")]
            public static 
            void DeleteOcclusionQueries(Int32 n, ref Int32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = &ids)
                    {
                        Delegates.glDeleteOcclusionQueriesNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glDeleteOcclusionQueriesNV")]
            public static 
            void DeleteOcclusionQueries(Int32 n, ref UInt32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = &ids)
                    {
                        Delegates.glDeleteOcclusionQueriesNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glDeleteOcclusionQueriesNV")]
            public static 
            unsafe void DeleteOcclusionQueries(Int32 n, UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteOcclusionQueriesNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glDeleteOcclusionQueriesNV")]
            public static 
            void DeleteOcclusionQueries(Int32 n, UInt32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = ids)
                    {
                        Delegates.glDeleteOcclusionQueriesNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glDeleteProgramsNV")]
            public static 
            unsafe void DeleteProgram(Int32 n, Int32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteProgramsNV((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glDeleteProgramsNV")]
            public static 
            void DeleteProgram(Int32 n, Int32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = programs)
                    {
                        Delegates.glDeleteProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glDeleteProgramsNV")]
            public static 
            void DeleteProgram(Int32 n, ref Int32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = &programs)
                    {
                        Delegates.glDeleteProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glDeleteProgramsNV")]
            public static 
            void DeleteProgram(Int32 n, ref UInt32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = &programs)
                    {
                        Delegates.glDeleteProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glDeleteProgramsNV")]
            public static 
            unsafe void DeleteProgram(Int32 n, UInt32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteProgramsNV((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glDeleteProgramsNV")]
            public static 
            void DeleteProgram(Int32 n, UInt32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = programs)
                    {
                        Delegates.glDeleteProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
            public static 
            unsafe void DeleteTransformFeedback(Int32 n, Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteTransformFeedbacksNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
            public static 
            void DeleteTransformFeedback(Int32 n, Int32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = ids)
                    {
                        Delegates.glDeleteTransformFeedbacksNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
            public static 
            void DeleteTransformFeedback(Int32 n, ref Int32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = &ids)
                    {
                        Delegates.glDeleteTransformFeedbacksNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
            public static 
            void DeleteTransformFeedback(Int32 n, ref UInt32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = &ids)
                    {
                        Delegates.glDeleteTransformFeedbacksNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
            public static 
            unsafe void DeleteTransformFeedback(Int32 n, UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteTransformFeedbacksNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
            public static 
            void DeleteTransformFeedback(Int32 n, UInt32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = ids)
                    {
                        Delegates.glDeleteTransformFeedbacksNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvDepthBufferFloat", Version = "2.0", EntryPoint = "glDepthBoundsdNV")]
            public static 
            void DepthBounds(Double zmin, Double zmax)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDepthBoundsdNV((Double)zmin, (Double)zmax);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify mapping of depth values from normalized device coordinates to window coordinates
        /// </summary>
        /// <param name="nearVal">
        /// <para>
        /// Specifies the mapping of the near clipping plane to window coordinates. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="farVal">
        /// <para>
        /// Specifies the mapping of the far clipping plane to window coordinates. The initial value is 1.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvDepthBufferFloat", Version = "2.0", EntryPoint = "glDepthRangedNV")]
            public static 
            void DepthRange(Double zNear, Double zFar)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDepthRangedNV((Double)zNear, (Double)zFar);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glDrawTransformFeedbackNV")]
            public static 
            void DrawTransformFeedback(NvTransformFeedback2 mode, Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawTransformFeedbackNV((NvTransformFeedback2)mode, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glDrawTransformFeedbackNV")]
            public static 
            void DrawTransformFeedback(NvTransformFeedback2 mode, UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawTransformFeedbackNV((NvTransformFeedback2)mode, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvConditionalRender", Version = "", EntryPoint = "glEndConditionalRenderNV")]
            public static 
            void EndConditionalRender()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndConditionalRenderNV();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glEndOcclusionQueryNV")]
            public static 
            void EndOcclusionQuery()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndOcclusionQueryNV();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glEndTransformFeedbackNV")]
            public static 
            void EndTransformFeedback()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndTransformFeedbackNV();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glEvalMapsNV")]
            public static 
            void EvalMap(NvEvaluators target, NvEvaluators mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEvalMapsNV((NvEvaluators)target, (NvEvaluators)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            void ExecuteProgram(AssemblyProgramTargetArb target, Int32 id, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glExecuteProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            unsafe void ExecuteProgram(AssemblyProgramTargetArb target, Int32 id, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glExecuteProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            void ExecuteProgram(AssemblyProgramTargetArb target, Int32 id, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glExecuteProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            void ExecuteProgram(AssemblyProgramTargetArb target, UInt32 id, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glExecuteProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            unsafe void ExecuteProgram(AssemblyProgramTargetArb target, UInt32 id, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glExecuteProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            void ExecuteProgram(AssemblyProgramTargetArb target, UInt32 id, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glExecuteProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glFinalCombinerInputNV")]
            public static 
            void FinalCombinerInput(NvRegisterCombiners variable, NvRegisterCombiners input, NvRegisterCombiners mapping, NvRegisterCombiners componentUsage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinalCombinerInputNV((NvRegisterCombiners)variable, (NvRegisterCombiners)input, (NvRegisterCombiners)mapping, (NvRegisterCombiners)componentUsage);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glFinishFenceNV")]
            public static 
            void FinishFence(Int32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinishFenceNV((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glFinishFenceNV")]
            public static 
            void FinishFence(UInt32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinishFenceNV((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPixelDataRange", Version = "1.2", EntryPoint = "glFlushPixelDataRangeNV")]
            public static 
            void FlushPixelDataRange(NvPixelDataRange target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushPixelDataRangeNV((NvPixelDataRange)target);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexArrayRange", Version = "1.1", EntryPoint = "glFlushVertexArrayRangeNV")]
            public static 
            void FlushVertexArrayRange()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushVertexArrayRangeNV();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glFogCoordhNV")]
            public static 
            void FogCoordh(OpenTK.Half fog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordhNV((OpenTK.Half)fog);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glFogCoordhvNV")]
            public static 
            unsafe void FogCoordh(OpenTK.Half* fog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordhvNV((OpenTK.Half*)fog);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            unsafe void GenFences(Int32 n, [Out] Int32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFencesNV((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            void GenFences(Int32 n, [Out] Int32[] fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* fences_ptr = fences)
                    {
                        Delegates.glGenFencesNV((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            void GenFences(Int32 n, [Out] out Int32 fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* fences_ptr = &fences)
                    {
                        Delegates.glGenFencesNV((Int32)n, (UInt32*)fences_ptr);
                        fences = *fences_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            void GenFences(Int32 n, [Out] out UInt32 fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* fences_ptr = &fences)
                    {
                        Delegates.glGenFencesNV((Int32)n, (UInt32*)fences_ptr);
                        fences = *fences_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            unsafe void GenFences(Int32 n, [Out] UInt32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFencesNV((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            void GenFences(Int32 n, [Out] UInt32[] fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* fences_ptr = fences)
                    {
                        Delegates.glGenFencesNV((Int32)n, (UInt32*)fences_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            unsafe void GenOcclusionQueries(Int32 n, [Out] Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenOcclusionQueriesNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            void GenOcclusionQueries(Int32 n, [Out] Int32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = ids)
                    {
                        Delegates.glGenOcclusionQueriesNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            void GenOcclusionQueries(Int32 n, [Out] out Int32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = &ids)
                    {
                        Delegates.glGenOcclusionQueriesNV((Int32)n, (UInt32*)ids_ptr);
                        ids = *ids_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            void GenOcclusionQueries(Int32 n, [Out] out UInt32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = &ids)
                    {
                        Delegates.glGenOcclusionQueriesNV((Int32)n, (UInt32*)ids_ptr);
                        ids = *ids_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            unsafe void GenOcclusionQueries(Int32 n, [Out] UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenOcclusionQueriesNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            void GenOcclusionQueries(Int32 n, [Out] UInt32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = ids)
                    {
                        Delegates.glGenOcclusionQueriesNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            unsafe void GenProgram(Int32 n, [Out] Int32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenProgramsNV((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            void GenProgram(Int32 n, [Out] Int32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = programs)
                    {
                        Delegates.glGenProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            void GenProgram(Int32 n, [Out] out Int32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = &programs)
                    {
                        Delegates.glGenProgramsNV((Int32)n, (UInt32*)programs_ptr);
                        programs = *programs_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            void GenProgram(Int32 n, [Out] out UInt32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = &programs)
                    {
                        Delegates.glGenProgramsNV((Int32)n, (UInt32*)programs_ptr);
                        programs = *programs_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            unsafe void GenProgram(Int32 n, [Out] UInt32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenProgramsNV((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            void GenProgram(Int32 n, [Out] UInt32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = programs)
                    {
                        Delegates.glGenProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            unsafe void GenTransformFeedback(Int32 n, [Out] Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenTransformFeedbacksNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            void GenTransformFeedback(Int32 n, [Out] Int32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = ids)
                    {
                        Delegates.glGenTransformFeedbacksNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            void GenTransformFeedback(Int32 n, [Out] out Int32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = &ids)
                    {
                        Delegates.glGenTransformFeedbacksNV((Int32)n, (UInt32*)ids_ptr);
                        ids = *ids_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            void GenTransformFeedback(Int32 n, [Out] out UInt32 ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = &ids)
                    {
                        Delegates.glGenTransformFeedbacksNV((Int32)n, (UInt32*)ids_ptr);
                        ids = *ids_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            unsafe void GenTransformFeedback(Int32 n, [Out] UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenTransformFeedbacksNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            void GenTransformFeedback(Int32 n, [Out] UInt32[] ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = ids)
                    {
                        Delegates.glGenTransformFeedbacksNV((Int32)n, (UInt32*)ids_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetActiveVaryingNV")]
            public static 
            unsafe void GetActiveVarying(Int32 program, Int32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] NvTransformFeedback* type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveVaryingNV((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (NvTransformFeedback*)type, (System.Text.StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetActiveVaryingNV")]
            public static 
            void GetActiveVarying(Int32 program, Int32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out NvTransformFeedback type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (NvTransformFeedback* type_ptr = &type)
                    {
                        Delegates.glGetActiveVaryingNV((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (NvTransformFeedback*)type_ptr, (System.Text.StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetActiveVaryingNV")]
            public static 
            unsafe void GetActiveVarying(UInt32 program, UInt32 index, Int32 bufSize, [Out] Int32* length, [Out] Int32* size, [Out] NvTransformFeedback* type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveVaryingNV((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (NvTransformFeedback*)type, (System.Text.StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetActiveVaryingNV")]
            public static 
            void GetActiveVarying(UInt32 program, UInt32 index, Int32 bufSize, [Out] out Int32 length, [Out] out Int32 size, [Out] out NvTransformFeedback type, [Out] System.Text.StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (NvTransformFeedback* type_ptr = &type)
                    {
                        Delegates.glGetActiveVaryingNV((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (NvTransformFeedback*)type_ptr, (System.Text.StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterfvNV")]
            public static 
            void GetCombinerInputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerInputParameterfvNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterfvNV")]
            public static 
            unsafe void GetCombinerInputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerInputParameterfvNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterfvNV")]
            public static 
            void GetCombinerInputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerInputParameterfvNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterivNV")]
            public static 
            unsafe void GetCombinerInputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerInputParameterivNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterivNV")]
            public static 
            void GetCombinerInputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerInputParameterivNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterivNV")]
            public static 
            void GetCombinerInputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerInputParameterivNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterfvNV")]
            public static 
            void GetCombinerOutputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerOutputParameterfvNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterfvNV")]
            public static 
            unsafe void GetCombinerOutputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerOutputParameterfvNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterfvNV")]
            public static 
            void GetCombinerOutputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerOutputParameterfvNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterivNV")]
            public static 
            unsafe void GetCombinerOutputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerOutputParameterivNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterivNV")]
            public static 
            void GetCombinerOutputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerOutputParameterivNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterivNV")]
            public static 
            void GetCombinerOutputParameter(NvRegisterCombiners stage, NvRegisterCombiners portion, NvRegisterCombiners pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerOutputParameterivNV((NvRegisterCombiners)stage, (NvRegisterCombiners)portion, (NvRegisterCombiners)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners2", Version = "1.1", EntryPoint = "glGetCombinerStageParameterfvNV")]
            public static 
            void GetCombinerStageParameter(NvRegisterCombiners2 stage, NvRegisterCombiners2 pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerStageParameterfvNV((NvRegisterCombiners2)stage, (NvRegisterCombiners2)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners2", Version = "1.1", EntryPoint = "glGetCombinerStageParameterfvNV")]
            public static 
            unsafe void GetCombinerStageParameter(NvRegisterCombiners2 stage, NvRegisterCombiners2 pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerStageParameterfvNV((NvRegisterCombiners2)stage, (NvRegisterCombiners2)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners2", Version = "1.1", EntryPoint = "glGetCombinerStageParameterfvNV")]
            public static 
            void GetCombinerStageParameter(NvRegisterCombiners2 stage, NvRegisterCombiners2 pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerStageParameterfvNV((NvRegisterCombiners2)stage, (NvRegisterCombiners2)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            unsafe void GetFence(Int32 fence, NvFence pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFenceivNV((UInt32)fence, (NvFence)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            void GetFence(Int32 fence, NvFence pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFenceivNV((UInt32)fence, (NvFence)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            void GetFence(Int32 fence, NvFence pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFenceivNV((UInt32)fence, (NvFence)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            unsafe void GetFence(UInt32 fence, NvFence pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFenceivNV((UInt32)fence, (NvFence)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            void GetFence(UInt32 fence, NvFence pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFenceivNV((UInt32)fence, (NvFence)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            void GetFence(UInt32 fence, NvFence pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFenceivNV((UInt32)fence, (NvFence)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
            public static 
            void GetFinalCombinerInputParameter(NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetFinalCombinerInputParameterfvNV((NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
            public static 
            unsafe void GetFinalCombinerInputParameter(NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFinalCombinerInputParameterfvNV((NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
            public static 
            void GetFinalCombinerInputParameter(NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetFinalCombinerInputParameterfvNV((NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
            public static 
            unsafe void GetFinalCombinerInputParameter(NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFinalCombinerInputParameterivNV((NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
            public static 
            void GetFinalCombinerInputParameter(NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFinalCombinerInputParameterivNV((NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvRegisterCombiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
            public static 
            void GetFinalCombinerInputParameter(NvRegisterCombiners variable, NvRegisterCombiners pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFinalCombinerInputParameterivNV((NvRegisterCombiners)variable, (NvRegisterCombiners)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            void GetMapAttribParameter(NvEvaluators target, Int32 index, NvEvaluators pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMapAttribParameterfvNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            unsafe void GetMapAttribParameter(NvEvaluators target, Int32 index, NvEvaluators pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapAttribParameterfvNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            void GetMapAttribParameter(NvEvaluators target, Int32 index, NvEvaluators pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMapAttribParameterfvNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            void GetMapAttribParameter(NvEvaluators target, UInt32 index, NvEvaluators pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMapAttribParameterfvNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            unsafe void GetMapAttribParameter(NvEvaluators target, UInt32 index, NvEvaluators pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapAttribParameterfvNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            void GetMapAttribParameter(NvEvaluators target, UInt32 index, NvEvaluators pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMapAttribParameterfvNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            unsafe void GetMapAttribParameter(NvEvaluators target, Int32 index, NvEvaluators pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapAttribParameterivNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            void GetMapAttribParameter(NvEvaluators target, Int32 index, NvEvaluators pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMapAttribParameterivNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            void GetMapAttribParameter(NvEvaluators target, Int32 index, NvEvaluators pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMapAttribParameterivNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            unsafe void GetMapAttribParameter(NvEvaluators target, UInt32 index, NvEvaluators pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapAttribParameterivNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            void GetMapAttribParameter(NvEvaluators target, UInt32 index, NvEvaluators pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMapAttribParameterivNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            void GetMapAttribParameter(NvEvaluators target, UInt32 index, NvEvaluators pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMapAttribParameterivNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [In, Out] ref T6 points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [In, Out] T6[,,] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [In, Out] T6[,] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [In, Out] T6[] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [Out] IntPtr points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [In, Out] ref T6 points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [In, Out] T6[,,] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [In, Out] T6[,] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [In, Out] T6[] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [Out] IntPtr points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapParameterfvNV")]
            public static 
            void GetMapParameter(NvEvaluators target, NvEvaluators pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMapParameterfvNV((NvEvaluators)target, (NvEvaluators)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapParameterfvNV")]
            public static 
            unsafe void GetMapParameter(NvEvaluators target, NvEvaluators pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapParameterfvNV((NvEvaluators)target, (NvEvaluators)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapParameterfvNV")]
            public static 
            void GetMapParameter(NvEvaluators target, NvEvaluators pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMapParameterfvNV((NvEvaluators)target, (NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapParameterivNV")]
            public static 
            unsafe void GetMapParameter(NvEvaluators target, NvEvaluators pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapParameterivNV((NvEvaluators)target, (NvEvaluators)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapParameterivNV")]
            public static 
            void GetMapParameter(NvEvaluators target, NvEvaluators pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMapParameterivNV((NvEvaluators)target, (NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glGetMapParameterivNV")]
            public static 
            void GetMapParameter(NvEvaluators target, NvEvaluators pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMapParameterivNV((NvEvaluators)target, (NvEvaluators)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            void GetMultisample(NvExplicitMultisample pname, Int32 index, [Out] out Single val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = &val)
                    {
                        Delegates.glGetMultisamplefvNV((NvExplicitMultisample)pname, (UInt32)index, (Single*)val_ptr);
                        val = *val_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            unsafe void GetMultisample(NvExplicitMultisample pname, Int32 index, [Out] Single* val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultisamplefvNV((NvExplicitMultisample)pname, (UInt32)index, (Single*)val);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            void GetMultisample(NvExplicitMultisample pname, Int32 index, [Out] Single[] val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = val)
                    {
                        Delegates.glGetMultisamplefvNV((NvExplicitMultisample)pname, (UInt32)index, (Single*)val_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            void GetMultisample(NvExplicitMultisample pname, UInt32 index, [Out] out Single val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = &val)
                    {
                        Delegates.glGetMultisamplefvNV((NvExplicitMultisample)pname, (UInt32)index, (Single*)val_ptr);
                        val = *val_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            unsafe void GetMultisample(NvExplicitMultisample pname, UInt32 index, [Out] Single* val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultisamplefvNV((NvExplicitMultisample)pname, (UInt32)index, (Single*)val);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            void GetMultisample(NvExplicitMultisample pname, UInt32 index, [Out] Single[] val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = val)
                    {
                        Delegates.glGetMultisamplefvNV((NvExplicitMultisample)pname, (UInt32)index, (Single*)val_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            unsafe void GetOcclusionQuery(Int32 id, NvOcclusionQuery pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetOcclusionQueryivNV((UInt32)id, (NvOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            void GetOcclusionQuery(Int32 id, NvOcclusionQuery pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetOcclusionQueryivNV((UInt32)id, (NvOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            void GetOcclusionQuery(Int32 id, NvOcclusionQuery pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetOcclusionQueryivNV((UInt32)id, (NvOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            unsafe void GetOcclusionQuery(UInt32 id, NvOcclusionQuery pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetOcclusionQueryivNV((UInt32)id, (NvOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            void GetOcclusionQuery(UInt32 id, NvOcclusionQuery pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetOcclusionQueryivNV((UInt32)id, (NvOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            void GetOcclusionQuery(UInt32 id, NvOcclusionQuery pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetOcclusionQueryivNV((UInt32)id, (NvOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryuivNV")]
            public static 
            void GetOcclusionQuery(UInt32 id, NvOcclusionQuery pname, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetOcclusionQueryuivNV((UInt32)id, (NvOcclusionQuery)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryuivNV")]
            public static 
            unsafe void GetOcclusionQuery(UInt32 id, NvOcclusionQuery pname, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetOcclusionQueryuivNV((UInt32)id, (NvOcclusionQuery)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glGetOcclusionQueryuivNV")]
            public static 
            void GetOcclusionQuery(UInt32 id, NvOcclusionQuery pname, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetOcclusionQueryuivNV((UInt32)id, (NvOcclusionQuery)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            unsafe void GetProgramEnvParameterI(NvGpuProgram4 target, Int32 index, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            void GetProgramEnvParameterI(NvGpuProgram4 target, Int32 index, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            void GetProgramEnvParameterI(NvGpuProgram4 target, Int32 index, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            unsafe void GetProgramEnvParameterI(NvGpuProgram4 target, UInt32 index, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            void GetProgramEnvParameterI(NvGpuProgram4 target, UInt32 index, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            void GetProgramEnvParameterI(NvGpuProgram4 target, UInt32 index, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIuivNV")]
            public static 
            void GetProgramEnvParameterI(NvGpuProgram4 target, UInt32 index, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterIuivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIuivNV")]
            public static 
            unsafe void GetProgramEnvParameterI(NvGpuProgram4 target, UInt32 index, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterIuivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIuivNV")]
            public static 
            void GetProgramEnvParameterI(NvGpuProgram4 target, UInt32 index, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterIuivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            unsafe void GetProgram(Int32 id, NvVertexProgram pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramivNV((UInt32)id, (NvVertexProgram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            void GetProgram(Int32 id, NvVertexProgram pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramivNV((UInt32)id, (NvVertexProgram)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            void GetProgram(Int32 id, NvVertexProgram pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramivNV((UInt32)id, (NvVertexProgram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            unsafe void GetProgram(UInt32 id, NvVertexProgram pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramivNV((UInt32)id, (NvVertexProgram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            void GetProgram(UInt32 id, NvVertexProgram pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramivNV((UInt32)id, (NvVertexProgram)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Returns a parameter from a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            void GetProgram(UInt32 id, NvVertexProgram pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramivNV((UInt32)id, (NvVertexProgram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            unsafe void GetProgramLocalParameterI(NvGpuProgram4 target, Int32 index, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            void GetProgramLocalParameterI(NvGpuProgram4 target, Int32 index, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            void GetProgramLocalParameterI(NvGpuProgram4 target, Int32 index, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            unsafe void GetProgramLocalParameterI(NvGpuProgram4 target, UInt32 index, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            void GetProgramLocalParameterI(NvGpuProgram4 target, UInt32 index, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            void GetProgramLocalParameterI(NvGpuProgram4 target, UInt32 index, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterIivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIuivNV")]
            public static 
            void GetProgramLocalParameterI(NvGpuProgram4 target, UInt32 index, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterIuivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIuivNV")]
            public static 
            unsafe void GetProgramLocalParameterI(NvGpuProgram4 target, UInt32 index, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterIuivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIuivNV")]
            public static 
            void GetProgramLocalParameterI(NvGpuProgram4 target, UInt32 index, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterIuivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            unsafe void GetProgramNamedParameter(Int32 id, Int32 len, Byte* name, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramNamedParameterdvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            unsafe void GetProgramNamedParameter(Int32 id, Int32 len, Byte* name, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetProgramNamedParameterdvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)@params_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramNamedParameterdvNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, Byte* name, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramNamedParameterdvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, Byte* name, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetProgramNamedParameterdvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)@params_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramNamedParameterdvNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            unsafe void GetProgramNamedParameter(Int32 id, Int32 len, Byte* name, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramNamedParameterfvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            unsafe void GetProgramNamedParameter(Int32 id, Int32 len, Byte* name, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetProgramNamedParameterfvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)@params_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramNamedParameterfvNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, Byte* name, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramNamedParameterfvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, Byte* name, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetProgramNamedParameterfvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)@params_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramNamedParameterfvNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            unsafe void GetProgramParameter(AssemblyProgramTargetArb target, Int32 index, AssemblyProgramParameterArb pname, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramParameterdvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            void GetProgramParameter(AssemblyProgramTargetArb target, Int32 index, AssemblyProgramParameterArb pname, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramParameterdvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            void GetProgramParameter(AssemblyProgramTargetArb target, Int32 index, AssemblyProgramParameterArb pname, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramParameterdvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            unsafe void GetProgramParameter(AssemblyProgramTargetArb target, UInt32 index, AssemblyProgramParameterArb pname, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramParameterdvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            void GetProgramParameter(AssemblyProgramTargetArb target, UInt32 index, AssemblyProgramParameterArb pname, [Out] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramParameterdvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            void GetProgramParameter(AssemblyProgramTargetArb target, UInt32 index, AssemblyProgramParameterArb pname, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramParameterdvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            void GetProgramParameter(AssemblyProgramTargetArb target, Int32 index, AssemblyProgramParameterArb pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramParameterfvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            unsafe void GetProgramParameter(AssemblyProgramTargetArb target, Int32 index, AssemblyProgramParameterArb pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramParameterfvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            void GetProgramParameter(AssemblyProgramTargetArb target, Int32 index, AssemblyProgramParameterArb pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramParameterfvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            void GetProgramParameter(AssemblyProgramTargetArb target, UInt32 index, AssemblyProgramParameterArb pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramParameterfvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            unsafe void GetProgramParameter(AssemblyProgramTargetArb target, UInt32 index, AssemblyProgramParameterArb pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramParameterfvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            void GetProgramParameter(AssemblyProgramTargetArb target, UInt32 index, AssemblyProgramParameterArb pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramParameterfvNV((AssemblyProgramTargetArb)target, (UInt32)index, (AssemblyProgramParameterArb)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            unsafe void GetProgramString(Int32 id, NvVertexProgram pname, [Out] Byte* program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramStringNV((UInt32)id, (NvVertexProgram)pname, (Byte*)program);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            void GetProgramString(Int32 id, NvVertexProgram pname, [Out] Byte[] program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = program)
                    {
                        Delegates.glGetProgramStringNV((UInt32)id, (NvVertexProgram)pname, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            void GetProgramString(Int32 id, NvVertexProgram pname, [Out] out Byte program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = &program)
                    {
                        Delegates.glGetProgramStringNV((UInt32)id, (NvVertexProgram)pname, (Byte*)program_ptr);
                        program = *program_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            unsafe void GetProgramString(UInt32 id, NvVertexProgram pname, [Out] Byte* program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramStringNV((UInt32)id, (NvVertexProgram)pname, (Byte*)program);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            void GetProgramString(UInt32 id, NvVertexProgram pname, [Out] Byte[] program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = program)
                    {
                        Delegates.glGetProgramStringNV((UInt32)id, (NvVertexProgram)pname, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            void GetProgramString(UInt32 id, NvVertexProgram pname, [Out] out Byte program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = &program)
                    {
                        Delegates.glGetProgramStringNV((UInt32)id, (NvVertexProgram)pname, (Byte*)program_ptr);
                        program = *program_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetTrackMatrixivNV")]
            public static 
            unsafe void GetTrackMatrix(AssemblyProgramTargetArb target, Int32 address, AssemblyProgramParameterArb pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTrackMatrixivNV((AssemblyProgramTargetArb)target, (UInt32)address, (AssemblyProgramParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetTrackMatrixivNV")]
            public static 
            void GetTrackMatrix(AssemblyProgramTargetArb target, Int32 address, AssemblyProgramParameterArb pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTrackMatrixivNV((AssemblyProgramTargetArb)target, (UInt32)address, (AssemblyProgramParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetTrackMatrixivNV")]
            public static 
            unsafe void GetTrackMatrix(AssemblyProgramTargetArb target, UInt32 address, AssemblyProgramParameterArb pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTrackMatrixivNV((AssemblyProgramTargetArb)target, (UInt32)address, (AssemblyProgramParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetTrackMatrixivNV")]
            public static 
            void GetTrackMatrix(AssemblyProgramTargetArb target, UInt32 address, AssemblyProgramParameterArb pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTrackMatrixivNV((AssemblyProgramTargetArb)target, (UInt32)address, (AssemblyProgramParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetTransformFeedbackVaryingNV")]
            public static 
            unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, [Out] Int32* location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTransformFeedbackVaryingNV((UInt32)program, (UInt32)index, (Int32*)location);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetTransformFeedbackVaryingNV")]
            public static 
            void GetTransformFeedbackVarying(Int32 program, Int32 index, [Out] out Int32 location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* location_ptr = &location)
                    {
                        Delegates.glGetTransformFeedbackVaryingNV((UInt32)program, (UInt32)index, (Int32*)location_ptr);
                        location = *location_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetTransformFeedbackVaryingNV")]
            public static 
            unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, [Out] Int32* location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTransformFeedbackVaryingNV((UInt32)program, (UInt32)index, (Int32*)location);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetTransformFeedbackVaryingNV")]
            public static 
            void GetTransformFeedbackVarying(UInt32 program, UInt32 index, [Out] out Int32 location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* location_ptr = &location)
                    {
                        Delegates.glGetTransformFeedbackVaryingNV((UInt32)program, (UInt32)index, (Int32*)location_ptr);
                        location = *location_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetVaryingLocationNV")]
            public static 
            Int32 GetVaryingLocation(Int32 program, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetVaryingLocationNV((UInt32)program, (String)name);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glGetVaryingLocationNV")]
            public static 
            Int32 GetVaryingLocation(UInt32 program, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetVaryingLocationNV((UInt32)program, (String)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribdvNV")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, NvVertexProgram pname, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribdvNV((UInt32)index, (NvVertexProgram)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribdvNV")]
            public static 
            void GetVertexAttrib(Int32 index, NvVertexProgram pname, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribdvNV((UInt32)index, (NvVertexProgram)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribdvNV")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, NvVertexProgram pname, [Out] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribdvNV((UInt32)index, (NvVertexProgram)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribdvNV")]
            public static 
            void GetVertexAttrib(UInt32 index, NvVertexProgram pname, [Out] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribdvNV((UInt32)index, (NvVertexProgram)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribfvNV")]
            public static 
            void GetVertexAttrib(Int32 index, NvVertexProgram pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribfvNV((UInt32)index, (NvVertexProgram)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribfvNV")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, NvVertexProgram pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribfvNV((UInt32)index, (NvVertexProgram)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribfvNV")]
            public static 
            void GetVertexAttrib(UInt32 index, NvVertexProgram pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribfvNV((UInt32)index, (NvVertexProgram)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribfvNV")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, NvVertexProgram pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribfvNV((UInt32)index, (NvVertexProgram)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribivNV")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, NvVertexProgram pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribivNV((UInt32)index, (NvVertexProgram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribivNV")]
            public static 
            void GetVertexAttrib(Int32 index, NvVertexProgram pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribivNV((UInt32)index, (NvVertexProgram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribivNV")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, NvVertexProgram pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribivNV((UInt32)index, (NvVertexProgram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Return a generic vertex attribute parameter
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the generic vertex attribute parameter to be queried.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribivNV")]
            public static 
            void GetVertexAttrib(UInt32 index, NvVertexProgram pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribivNV((UInt32)index, (NvVertexProgram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, NvVertexProgram pname, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, NvVertexProgram pname, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, NvVertexProgram pname, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, NvVertexProgram pname, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer(Int32 index, NvVertexProgram pname, [Out] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, NvVertexProgram pname, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, NvVertexProgram pname, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, NvVertexProgram pname, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, NvVertexProgram pname, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer(UInt32 index, NvVertexProgram pname, [Out] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribPointervNV((UInt32)index, (NvVertexProgram)pname, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            unsafe void GetVideoi64(Int32 video_slot, NvPresentVideo pname, [Out] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoi64vNV((UInt32)video_slot, (NvPresentVideo)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            void GetVideoi64(Int32 video_slot, NvPresentVideo pname, [Out] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetVideoi64vNV((UInt32)video_slot, (NvPresentVideo)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            void GetVideoi64(Int32 video_slot, NvPresentVideo pname, [Out] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoi64vNV((UInt32)video_slot, (NvPresentVideo)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            unsafe void GetVideoi64(UInt32 video_slot, NvPresentVideo pname, [Out] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoi64vNV((UInt32)video_slot, (NvPresentVideo)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            void GetVideoi64(UInt32 video_slot, NvPresentVideo pname, [Out] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetVideoi64vNV((UInt32)video_slot, (NvPresentVideo)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            void GetVideoi64(UInt32 video_slot, NvPresentVideo pname, [Out] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoi64vNV((UInt32)video_slot, (NvPresentVideo)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            unsafe void GetVideo(Int32 video_slot, NvPresentVideo pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoivNV((UInt32)video_slot, (NvPresentVideo)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            void GetVideo(Int32 video_slot, NvPresentVideo pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVideoivNV((UInt32)video_slot, (NvPresentVideo)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            void GetVideo(Int32 video_slot, NvPresentVideo pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoivNV((UInt32)video_slot, (NvPresentVideo)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            unsafe void GetVideo(UInt32 video_slot, NvPresentVideo pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoivNV((UInt32)video_slot, (NvPresentVideo)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            void GetVideo(UInt32 video_slot, NvPresentVideo pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVideoivNV((UInt32)video_slot, (NvPresentVideo)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            void GetVideo(UInt32 video_slot, NvPresentVideo pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoivNV((UInt32)video_slot, (NvPresentVideo)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            unsafe void GetVideoui64(Int32 video_slot, NvPresentVideo pname, [Out] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoui64vNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            void GetVideoui64(Int32 video_slot, NvPresentVideo pname, [Out] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetVideoui64vNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            void GetVideoui64(Int32 video_slot, NvPresentVideo pname, [Out] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoui64vNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            void GetVideoui64(UInt32 video_slot, NvPresentVideo pname, [Out] out UInt64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoui64vNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            unsafe void GetVideoui64(UInt32 video_slot, NvPresentVideo pname, [Out] UInt64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoui64vNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            void GetVideoui64(UInt32 video_slot, NvPresentVideo pname, [Out] UInt64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = @params)
                    {
                        Delegates.glGetVideoui64vNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideouivNV")]
            public static 
            void GetVideo(UInt32 video_slot, NvPresentVideo pname, [Out] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideouivNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideouivNV")]
            public static 
            unsafe void GetVideo(UInt32 video_slot, NvPresentVideo pname, [Out] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideouivNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glGetVideouivNV")]
            public static 
            void GetVideo(UInt32 video_slot, NvPresentVideo pname, [Out] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetVideouivNV((UInt32)video_slot, (NvPresentVideo)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glIsFenceNV")]
            public static 
            bool IsFence(Int32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsFenceNV((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glIsFenceNV")]
            public static 
            bool IsFence(UInt32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsFenceNV((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glIsOcclusionQueryNV")]
            public static 
            bool IsOcclusionQuery(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsOcclusionQueryNV((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvOcclusionQuery", Version = "1.2", EntryPoint = "glIsOcclusionQueryNV")]
            public static 
            bool IsOcclusionQuery(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsOcclusionQueryNV((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glIsProgramNV")]
            public static 
            bool IsProgram(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsProgramNV((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glIsProgramNV")]
            public static 
            bool IsProgram(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsProgramNV((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glIsTransformFeedbackNV")]
            public static 
            bool IsTransformFeedback(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsTransformFeedbackNV((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glIsTransformFeedbackNV")]
            public static 
            bool IsTransformFeedback(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsTransformFeedbackNV((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            unsafe void LoadProgram(AssemblyProgramTargetArb target, Int32 id, Int32 len, Byte* program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            void LoadProgram(AssemblyProgramTargetArb target, Int32 id, Int32 len, Byte[] program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = program)
                    {
                        Delegates.glLoadProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            void LoadProgram(AssemblyProgramTargetArb target, Int32 id, Int32 len, ref Byte program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = &program)
                    {
                        Delegates.glLoadProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            unsafe void LoadProgram(AssemblyProgramTargetArb target, UInt32 id, Int32 len, Byte* program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            void LoadProgram(AssemblyProgramTargetArb target, UInt32 id, Int32 len, Byte[] program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = program)
                    {
                        Delegates.glLoadProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            void LoadProgram(AssemblyProgramTargetArb target, UInt32 id, Int32 len, ref Byte program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = &program)
                    {
                        Delegates.glLoadProgramNV((AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [In, Out] ref T8 points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [In, Out] T8[,,] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [In, Out] T8[,] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [In, Out] T8[] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints(NvEvaluators target, Int32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, IntPtr points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [In, Out] ref T8 points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [In, Out] T8[,,] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [In, Out] T8[,] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [In, Out] T8[] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints(NvEvaluators target, UInt32 index, NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, IntPtr points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapControlPointsNV((NvEvaluators)target, (UInt32)index, (NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapParameterfvNV")]
            public static 
            void MapParameter(NvEvaluators target, NvEvaluators pname, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glMapParameterfvNV((NvEvaluators)target, (NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapParameterfvNV")]
            public static 
            unsafe void MapParameter(NvEvaluators target, NvEvaluators pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapParameterfvNV((NvEvaluators)target, (NvEvaluators)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapParameterfvNV")]
            public static 
            void MapParameter(NvEvaluators target, NvEvaluators pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glMapParameterfvNV((NvEvaluators)target, (NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapParameterivNV")]
            public static 
            unsafe void MapParameter(NvEvaluators target, NvEvaluators pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapParameterivNV((NvEvaluators)target, (NvEvaluators)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapParameterivNV")]
            public static 
            void MapParameter(NvEvaluators target, NvEvaluators pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMapParameterivNV((NvEvaluators)target, (NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvEvaluators", Version = "1.1", EntryPoint = "glMapParameterivNV")]
            public static 
            void MapParameter(NvEvaluators target, NvEvaluators pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glMapParameterivNV((NvEvaluators)target, (NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord1hNV")]
            public static 
            void MultiTexCoord1h(TextureUnit target, OpenTK.Half s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1hNV((TextureUnit)target, (OpenTK.Half)s);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord1hvNV")]
            public static 
            unsafe void MultiTexCoord1h(TextureUnit target, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1hvNV((TextureUnit)target, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord2hNV")]
            public static 
            void MultiTexCoord2h(TextureUnit target, OpenTK.Half s, OpenTK.Half t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2hNV((TextureUnit)target, (OpenTK.Half)s, (OpenTK.Half)t);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord2hvNV")]
            public static 
            unsafe void MultiTexCoord2h(TextureUnit target, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2hvNV((TextureUnit)target, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord2hvNV")]
            public static 
            void MultiTexCoord2h(TextureUnit target, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2hvNV((TextureUnit)target, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord2hvNV")]
            public static 
            void MultiTexCoord2h(TextureUnit target, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2hvNV((TextureUnit)target, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord3hNV")]
            public static 
            void MultiTexCoord3h(TextureUnit target, OpenTK.Half s, OpenTK.Half t, OpenTK.Half r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3hNV((TextureUnit)target, (OpenTK.Half)s, (OpenTK.Half)t, (OpenTK.Half)r);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord3hvNV")]
            public static 
            unsafe void MultiTexCoord3h(TextureUnit target, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3hvNV((TextureUnit)target, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord3hvNV")]
            public static 
            void MultiTexCoord3h(TextureUnit target, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3hvNV((TextureUnit)target, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord3hvNV")]
            public static 
            void MultiTexCoord3h(TextureUnit target, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3hvNV((TextureUnit)target, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord4hNV")]
            public static 
            void MultiTexCoord4h(TextureUnit target, OpenTK.Half s, OpenTK.Half t, OpenTK.Half r, OpenTK.Half q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4hNV((TextureUnit)target, (OpenTK.Half)s, (OpenTK.Half)t, (OpenTK.Half)r, (OpenTK.Half)q);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord4hvNV")]
            public static 
            unsafe void MultiTexCoord4h(TextureUnit target, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4hvNV((TextureUnit)target, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord4hvNV")]
            public static 
            void MultiTexCoord4h(TextureUnit target, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4hvNV((TextureUnit)target, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glMultiTexCoord4hvNV")]
            public static 
            void MultiTexCoord4h(TextureUnit target, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4hvNV((TextureUnit)target, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glNormal3hNV")]
            public static 
            void Normal3h(OpenTK.Half nx, OpenTK.Half ny, OpenTK.Half nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormal3hNV((OpenTK.Half)nx, (OpenTK.Half)ny, (OpenTK.Half)nz);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glNormal3hvNV")]
            public static 
            unsafe void Normal3h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormal3hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glNormal3hvNV")]
            public static 
            void Normal3h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glNormal3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glNormal3hvNV")]
            public static 
            void Normal3h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glNormal3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glPauseTransformFeedbackNV")]
            public static 
            void PauseTransformFeedback()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPauseTransformFeedbackNV();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPixelDataRange", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange<T2>(NvPixelDataRange target, Int32 length, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glPixelDataRangeNV((NvPixelDataRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPixelDataRange", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange<T2>(NvPixelDataRange target, Int32 length, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glPixelDataRangeNV((NvPixelDataRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPixelDataRange", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange<T2>(NvPixelDataRange target, Int32 length, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glPixelDataRangeNV((NvPixelDataRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPixelDataRange", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange<T2>(NvPixelDataRange target, Int32 length, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glPixelDataRangeNV((NvPixelDataRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPixelDataRange", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange(NvPixelDataRange target, Int32 length, [Out] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelDataRangeNV((NvPixelDataRange)target, (Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvPointSprite", Version = "1.2", EntryPoint = "glPointParameteriNV")]
            public static 
            void PointParameter(NvPointSprite pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameteriNV((NvPointSprite)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPointSprite", Version = "1.2", EntryPoint = "glPointParameterivNV")]
            public static 
            unsafe void PointParameter(NvPointSprite pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterivNV((NvPointSprite)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvPointSprite", Version = "1.2", EntryPoint = "glPointParameterivNV")]
            public static 
            void PointParameter(NvPointSprite pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glPointParameterivNV((NvPointSprite)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glPresentFrameDualFillNV")]
            public static 
            void PresentFrameDualFill(Int32 video_slot, Int64 minPresentTime, Int32 beginPresentTimeId, Int32 presentDurationId, NvPresentVideo type, NvPresentVideo target0, Int32 fill0, NvPresentVideo target1, Int32 fill1, NvPresentVideo target2, Int32 fill2, NvPresentVideo target3, Int32 fill3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPresentFrameDualFillNV((UInt32)video_slot, (UInt64)minPresentTime, (UInt32)beginPresentTimeId, (UInt32)presentDurationId, (NvPresentVideo)type, (NvPresentVideo)target0, (UInt32)fill0, (NvPresentVideo)target1, (UInt32)fill1, (NvPresentVideo)target2, (UInt32)fill2, (NvPresentVideo)target3, (UInt32)fill3);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glPresentFrameDualFillNV")]
            public static 
            void PresentFrameDualFill(UInt32 video_slot, UInt64 minPresentTime, UInt32 beginPresentTimeId, UInt32 presentDurationId, NvPresentVideo type, NvPresentVideo target0, UInt32 fill0, NvPresentVideo target1, UInt32 fill1, NvPresentVideo target2, UInt32 fill2, NvPresentVideo target3, UInt32 fill3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPresentFrameDualFillNV((UInt32)video_slot, (UInt64)minPresentTime, (UInt32)beginPresentTimeId, (UInt32)presentDurationId, (NvPresentVideo)type, (NvPresentVideo)target0, (UInt32)fill0, (NvPresentVideo)target1, (UInt32)fill1, (NvPresentVideo)target2, (UInt32)fill2, (NvPresentVideo)target3, (UInt32)fill3);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glPresentFrameKeyedNV")]
            public static 
            void PresentFrameKeye(Int32 video_slot, Int64 minPresentTime, Int32 beginPresentTimeId, Int32 presentDurationId, NvPresentVideo type, NvPresentVideo target0, Int32 fill0, Int32 key0, NvPresentVideo target1, Int32 fill1, Int32 key1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPresentFrameKeyedNV((UInt32)video_slot, (UInt64)minPresentTime, (UInt32)beginPresentTimeId, (UInt32)presentDurationId, (NvPresentVideo)type, (NvPresentVideo)target0, (UInt32)fill0, (UInt32)key0, (NvPresentVideo)target1, (UInt32)fill1, (UInt32)key1);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPresentVideo", Version = "1.2", EntryPoint = "glPresentFrameKeyedNV")]
            public static 
            void PresentFrameKeye(UInt32 video_slot, UInt64 minPresentTime, UInt32 beginPresentTimeId, UInt32 presentDurationId, NvPresentVideo type, NvPresentVideo target0, UInt32 fill0, UInt32 key0, NvPresentVideo target1, UInt32 fill1, UInt32 key1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPresentFrameKeyedNV((UInt32)video_slot, (UInt64)minPresentTime, (UInt32)beginPresentTimeId, (UInt32)presentDurationId, (NvPresentVideo)type, (NvPresentVideo)target0, (UInt32)fill0, (UInt32)key0, (NvPresentVideo)target1, (UInt32)fill1, (UInt32)key1);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPrimitiveRestart", Version = "1.2", EntryPoint = "glPrimitiveRestartIndexNV")]
            public static 
            void PrimitiveRestartIndex(Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPrimitiveRestartIndexNV((UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvPrimitiveRestart", Version = "1.2", EntryPoint = "glPrimitiveRestartIndexNV")]
            public static 
            void PrimitiveRestartIndex(UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPrimitiveRestartIndexNV((UInt32)index);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvPrimitiveRestart", Version = "1.2", EntryPoint = "glPrimitiveRestartNV")]
            public static 
            void PrimitiveRestart()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPrimitiveRestartNV();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            void ProgramBufferParameters(NvParameterBufferObject target, Int32 buffer, Int32 index, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersfvNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            unsafe void ProgramBufferParameters(NvParameterBufferObject target, Int32 buffer, Int32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersfvNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            void ProgramBufferParameters(NvParameterBufferObject target, Int32 buffer, Int32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersfvNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            void ProgramBufferParameters(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersfvNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            unsafe void ProgramBufferParameters(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersfvNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            void ProgramBufferParameters(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersfvNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            unsafe void ProgramBufferParametersI(NvParameterBufferObject target, Int32 buffer, Int32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersIivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            void ProgramBufferParametersI(NvParameterBufferObject target, Int32 buffer, Int32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersIivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            void ProgramBufferParametersI(NvParameterBufferObject target, Int32 buffer, Int32 index, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersIivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            unsafe void ProgramBufferParametersI(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersIivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            void ProgramBufferParametersI(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersIivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            void ProgramBufferParametersI(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersIivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIuivNV")]
            public static 
            void ProgramBufferParametersI(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersIuivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIuivNV")]
            public static 
            unsafe void ProgramBufferParametersI(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersIuivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvParameterBufferObject", Version = "1.2", EntryPoint = "glProgramBufferParametersIuivNV")]
            public static 
            void ProgramBufferParametersI(NvParameterBufferObject target, UInt32 buffer, UInt32 index, Int32 count, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersIuivNV((NvParameterBufferObject)target, (UInt32)buffer, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4iNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, Int32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4iNV((NvGpuProgram4)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4iNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4iNV((NvGpuProgram4)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            unsafe void ProgramEnvParameterI4(NvGpuProgram4 target, Int32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, Int32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, Int32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            unsafe void ProgramEnvParameterI4(NvGpuProgram4 target, UInt32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, UInt32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, UInt32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4uiNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4uiNV((NvGpuProgram4)target, (UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z, (UInt32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4uivNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, UInt32 index, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameterI4uivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4uivNV")]
            public static 
            unsafe void ProgramEnvParameterI4(NvGpuProgram4 target, UInt32 index, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4uivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4uivNV")]
            public static 
            void ProgramEnvParameterI4(NvGpuProgram4 target, UInt32 index, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameterI4uivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            unsafe void ProgramEnvParametersI4(NvGpuProgram4 target, Int32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            void ProgramEnvParametersI4(NvGpuProgram4 target, Int32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            void ProgramEnvParametersI4(NvGpuProgram4 target, Int32 index, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            unsafe void ProgramEnvParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            void ProgramEnvParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            void ProgramEnvParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4uivNV")]
            public static 
            void ProgramEnvParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParametersI4uivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4uivNV")]
            public static 
            unsafe void ProgramEnvParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParametersI4uivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4uivNV")]
            public static 
            void ProgramEnvParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParametersI4uivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4iNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, Int32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4iNV((NvGpuProgram4)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4iNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4iNV((NvGpuProgram4)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            unsafe void ProgramLocalParameterI4(NvGpuProgram4 target, Int32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, Int32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, Int32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            unsafe void ProgramLocalParameterI4(NvGpuProgram4 target, UInt32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, UInt32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, UInt32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameterI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4uiNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4uiNV((NvGpuProgram4)target, (UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z, (UInt32)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4uivNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, UInt32 index, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameterI4uivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4uivNV")]
            public static 
            unsafe void ProgramLocalParameterI4(NvGpuProgram4 target, UInt32 index, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4uivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4uivNV")]
            public static 
            void ProgramLocalParameterI4(NvGpuProgram4 target, UInt32 index, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameterI4uivNV((NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            unsafe void ProgramLocalParametersI4(NvGpuProgram4 target, Int32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            void ProgramLocalParametersI4(NvGpuProgram4 target, Int32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            void ProgramLocalParametersI4(NvGpuProgram4 target, Int32 index, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            unsafe void ProgramLocalParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            void ProgramLocalParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            void ProgramLocalParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParametersI4ivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4uivNV")]
            public static 
            void ProgramLocalParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParametersI4uivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4uivNV")]
            public static 
            unsafe void ProgramLocalParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParametersI4uivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvGpuProgram4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4uivNV")]
            public static 
            void ProgramLocalParametersI4(NvGpuProgram4 target, UInt32 index, Int32 count, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParametersI4uivNV((NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dNV")]
            public static 
            unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramNamedParameter4dNV((UInt32)id, (Int32)len, (Byte*)name, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dNV")]
            public static 
            void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    {
                        Delegates.glProgramNamedParameter4dNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Double)x, (Double)y, (Double)z, (Double)w);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dNV")]
            public static 
            unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramNamedParameter4dNV((UInt32)id, (Int32)len, (Byte*)name, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dNV")]
            public static 
            void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    {
                        Delegates.glProgramNamedParameter4dNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Double)x, (Double)y, (Double)z, (Double)w);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dvNV")]
            public static 
            unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramNamedParameter4dvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dvNV")]
            public static 
            unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Double* v_ptr = v)
                {
                    Delegates.glProgramNamedParameter4dvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dvNV")]
            public static 
            void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramNamedParameter4dvNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dvNV")]
            public static 
            unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramNamedParameter4dvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dvNV")]
            public static 
            unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Double* v_ptr = v)
                {
                    Delegates.glProgramNamedParameter4dvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4dvNV")]
            public static 
            void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramNamedParameter4dvNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fNV")]
            public static 
            unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramNamedParameter4fNV((UInt32)id, (Int32)len, (Byte*)name, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fNV")]
            public static 
            void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    {
                        Delegates.glProgramNamedParameter4fNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Single)x, (Single)y, (Single)z, (Single)w);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fNV")]
            public static 
            unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramNamedParameter4fNV((UInt32)id, (Int32)len, (Byte*)name, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fNV")]
            public static 
            void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    {
                        Delegates.glProgramNamedParameter4fNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Single)x, (Single)y, (Single)z, (Single)w);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fvNV")]
            public static 
            unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramNamedParameter4fvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fvNV")]
            public static 
            unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* v_ptr = v)
                {
                    Delegates.glProgramNamedParameter4fvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fvNV")]
            public static 
            void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramNamedParameter4fvNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fvNV")]
            public static 
            unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramNamedParameter4fvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fvNV")]
            public static 
            unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* v_ptr = v)
                {
                    Delegates.glProgramNamedParameter4fvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFragmentProgram", Version = "1.2", EntryPoint = "glProgramNamedParameter4fvNV")]
            public static 
            void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* name_ptr = &name)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramNamedParameter4fvNV((UInt32)id, (Int32)len, (Byte*)name_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4dNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4dNV((AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4dNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4dNV((AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            unsafe void ProgramParameter4(AssemblyProgramTargetArb target, Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glProgramParameter4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramParameter4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            unsafe void ProgramParameter4(AssemblyProgramTargetArb target, UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glProgramParameter4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramParameter4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4fNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4fNV((AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4fNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4fNV((AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, Int32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramParameter4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            unsafe void ProgramParameter4(AssemblyProgramTargetArb target, Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, Int32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glProgramParameter4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, UInt32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramParameter4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            unsafe void ProgramParameter4(AssemblyProgramTargetArb target, UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            void ProgramParameter4(AssemblyProgramTargetArb target, UInt32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glProgramParameter4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            unsafe void ProgramParameters4(AssemblyProgramTargetArb target, Int32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameters4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            void ProgramParameters4(AssemblyProgramTargetArb target, Int32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glProgramParameters4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            void ProgramParameters4(AssemblyProgramTargetArb target, Int32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramParameters4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            unsafe void ProgramParameters4(AssemblyProgramTargetArb target, UInt32 index, UInt32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameters4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            void ProgramParameters4(AssemblyProgramTargetArb target, UInt32 index, UInt32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glProgramParameters4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            void ProgramParameters4(AssemblyProgramTargetArb target, UInt32 index, UInt32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramParameters4dvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            void ProgramParameters4(AssemblyProgramTargetArb target, Int32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramParameters4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            unsafe void ProgramParameters4(AssemblyProgramTargetArb target, Int32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameters4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            void ProgramParameters4(AssemblyProgramTargetArb target, Int32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glProgramParameters4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            void ProgramParameters4(AssemblyProgramTargetArb target, UInt32 index, UInt32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramParameters4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            unsafe void ProgramParameters4(AssemblyProgramTargetArb target, UInt32 index, UInt32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameters4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            void ProgramParameters4(AssemblyProgramTargetArb target, UInt32 index, UInt32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glProgramParameters4fvNV((AssemblyProgramTargetArb)target, (UInt32)index, (UInt32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvGeometryProgram4", Version = "2.0", EntryPoint = "glProgramVertexLimitNV")]
            public static 
            void ProgramVertexLimit(NvGeometryProgram4 target, Int32 limit)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramVertexLimitNV((NvGeometryProgram4)target, (Int32)limit);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFramebufferMultisampleCoverage", Version = "1.5", EntryPoint = "glRenderbufferStorageMultisampleCoverageNV")]
            public static 
            void RenderbufferStorageMultisampleCoverage(RenderbufferTarget target, Int32 coverageSamples, Int32 colorSamples, PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRenderbufferStorageMultisampleCoverageNV((RenderbufferTarget)target, (Int32)coverageSamples, (Int32)colorSamples, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glRequestResidentProgramsNV")]
            public static 
            unsafe void RequestResidentProgram(Int32 n, Int32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRequestResidentProgramsNV((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glRequestResidentProgramsNV")]
            public static 
            void RequestResidentProgram(Int32 n, Int32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = programs)
                    {
                        Delegates.glRequestResidentProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glRequestResidentProgramsNV")]
            public static 
            void RequestResidentProgram(Int32 n, ref Int32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* programs_ptr = &programs)
                    {
                        Delegates.glRequestResidentProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glRequestResidentProgramsNV")]
            public static 
            void RequestResidentProgram(Int32 n, ref UInt32 programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = &programs)
                    {
                        Delegates.glRequestResidentProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glRequestResidentProgramsNV")]
            public static 
            unsafe void RequestResidentProgram(Int32 n, UInt32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRequestResidentProgramsNV((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glRequestResidentProgramsNV")]
            public static 
            void RequestResidentProgram(Int32 n, UInt32[] programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* programs_ptr = programs)
                    {
                        Delegates.glRequestResidentProgramsNV((Int32)n, (UInt32*)programs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback2", Version = "", EntryPoint = "glResumeTransformFeedbackNV")]
            public static 
            void ResumeTransformFeedback()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glResumeTransformFeedbackNV();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glSampleMaskIndexedNV")]
            public static 
            void SampleMaskIndexed(Int32 index, Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleMaskIndexedNV((UInt32)index, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glSampleMaskIndexedNV")]
            public static 
            void SampleMaskIndexed(UInt32 index, UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleMaskIndexedNV((UInt32)index, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glSecondaryColor3hNV")]
            public static 
            void SecondaryColor3h(OpenTK.Half red, OpenTK.Half green, OpenTK.Half blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3hNV((OpenTK.Half)red, (OpenTK.Half)green, (OpenTK.Half)blue);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glSecondaryColor3hvNV")]
            public static 
            unsafe void SecondaryColor3h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glSecondaryColor3hvNV")]
            public static 
            void SecondaryColor3h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glSecondaryColor3hvNV")]
            public static 
            void SecondaryColor3h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glSetFenceNV")]
            public static 
            void SetFence(Int32 fence, NvFence condition)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetFenceNV((UInt32)fence, (NvFence)condition);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glSetFenceNV")]
            public static 
            void SetFence(UInt32 fence, NvFence condition)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetFenceNV((UInt32)fence, (NvFence)condition);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glTestFenceNV")]
            public static 
            bool TestFence(Int32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glTestFenceNV((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvFence", Version = "1.2", EntryPoint = "glTestFenceNV")]
            public static 
            bool TestFence(UInt32 fence)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glTestFenceNV((UInt32)fence);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord1hNV")]
            public static 
            void TexCoord1h(OpenTK.Half s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1hNV((OpenTK.Half)s);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord1hvNV")]
            public static 
            unsafe void TexCoord1h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord2hNV")]
            public static 
            void TexCoord2h(OpenTK.Half s, OpenTK.Half t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2hNV((OpenTK.Half)s, (OpenTK.Half)t);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord2hvNV")]
            public static 
            unsafe void TexCoord2h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord2hvNV")]
            public static 
            void TexCoord2h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glTexCoord2hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord2hvNV")]
            public static 
            void TexCoord2h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glTexCoord2hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord3hNV")]
            public static 
            void TexCoord3h(OpenTK.Half s, OpenTK.Half t, OpenTK.Half r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3hNV((OpenTK.Half)s, (OpenTK.Half)t, (OpenTK.Half)r);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord3hvNV")]
            public static 
            unsafe void TexCoord3h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord3hvNV")]
            public static 
            void TexCoord3h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glTexCoord3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord3hvNV")]
            public static 
            void TexCoord3h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glTexCoord3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord4hNV")]
            public static 
            void TexCoord4h(OpenTK.Half s, OpenTK.Half t, OpenTK.Half r, OpenTK.Half q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4hNV((OpenTK.Half)s, (OpenTK.Half)t, (OpenTK.Half)r, (OpenTK.Half)q);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord4hvNV")]
            public static 
            unsafe void TexCoord4h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord4hvNV")]
            public static 
            void TexCoord4h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glTexCoord4hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glTexCoord4hvNV")]
            public static 
            void TexCoord4h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glTexCoord4hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glTexRenderbufferNV")]
            public static 
            void TexRenderbuffer(TextureTarget target, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexRenderbufferNV((TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvExplicitMultisample", Version = "", EntryPoint = "glTexRenderbufferNV")]
            public static 
            void TexRenderbuffer(TextureTarget target, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexRenderbufferNV((TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glTrackMatrixNV")]
            public static 
            void TrackMatrix(AssemblyProgramTargetArb target, Int32 address, NvVertexProgram matrix, NvVertexProgram transform)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTrackMatrixNV((AssemblyProgramTargetArb)target, (UInt32)address, (NvVertexProgram)matrix, (NvVertexProgram)transform);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glTrackMatrixNV")]
            public static 
            void TrackMatrix(AssemblyProgramTargetArb target, UInt32 address, NvVertexProgram matrix, NvVertexProgram transform)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTrackMatrixNV((AssemblyProgramTargetArb)target, (UInt32)address, (NvVertexProgram)matrix, (NvVertexProgram)transform);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            unsafe void TransformFeedbackAttrib(Int32 count, Int32* attribs, NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs, (NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            void TransformFeedbackAttrib(Int32 count, Int32[] attribs, NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = attribs)
                    {
                        Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs_ptr, (NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            void TransformFeedbackAttrib(Int32 count, ref Int32 attribs, NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = &attribs)
                    {
                        Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs_ptr, (NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            unsafe void TransformFeedbackAttrib(UInt32 count, Int32* attribs, NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs, (NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            void TransformFeedbackAttrib(UInt32 count, Int32[] attribs, NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = attribs)
                    {
                        Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs_ptr, (NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            void TransformFeedbackAttrib(UInt32 count, ref Int32 attribs, NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = &attribs)
                    {
                        Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs_ptr, (NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glTransformFeedbackVaryingsNV")]
            public static 
            void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackVaryingsNV((UInt32)program, (Int32)count, (String[])varyings, (NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvTransformFeedback", Version = "1.5", EntryPoint = "glTransformFeedbackVaryingsNV")]
            public static 
            void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackVaryingsNV((UInt32)program, (Int32)count, (String[])varyings, (NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex2hNV")]
            public static 
            void Vertex2h(OpenTK.Half x, OpenTK.Half y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2hNV((OpenTK.Half)x, (OpenTK.Half)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex2hvNV")]
            public static 
            unsafe void Vertex2h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex2hvNV")]
            public static 
            void Vertex2h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertex2hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex2hvNV")]
            public static 
            void Vertex2h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertex2hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex3hNV")]
            public static 
            void Vertex3h(OpenTK.Half x, OpenTK.Half y, OpenTK.Half z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3hNV((OpenTK.Half)x, (OpenTK.Half)y, (OpenTK.Half)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex3hvNV")]
            public static 
            unsafe void Vertex3h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex3hvNV")]
            public static 
            void Vertex3h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertex3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex3hvNV")]
            public static 
            void Vertex3h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertex3hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex4hNV")]
            public static 
            void Vertex4h(OpenTK.Half x, OpenTK.Half y, OpenTK.Half z, OpenTK.Half w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4hNV((OpenTK.Half)x, (OpenTK.Half)y, (OpenTK.Half)z, (OpenTK.Half)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex4hvNV")]
            public static 
            unsafe void Vertex4h(OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4hvNV((OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex4hvNV")]
            public static 
            void Vertex4h(OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertex4hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertex4hvNV")]
            public static 
            void Vertex4h(ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertex4hvNV((OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexArrayRange", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [In, Out] ref T1 pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexArrayRangeNV((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexArrayRange", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [In, Out] T1[,,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexArrayRangeNV((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexArrayRange", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [In, Out] T1[,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexArrayRangeNV((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexArrayRange", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [In, Out] T1[] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexArrayRangeNV((Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexArrayRange", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange(Int32 length, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayRangeNV((Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1dNV")]
            public static 
            void VertexAttrib1(Int32 index, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1dNV((UInt32)index, (Double)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1dNV")]
            public static 
            void VertexAttrib1(UInt32 index, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1dNV((UInt32)index, (Double)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1dvNV")]
            public static 
            unsafe void VertexAttrib1(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1dvNV((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1dvNV")]
            public static 
            unsafe void VertexAttrib1(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1dvNV((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1fNV")]
            public static 
            void VertexAttrib1(Int32 index, Single x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1fNV((UInt32)index, (Single)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1fNV")]
            public static 
            void VertexAttrib1(UInt32 index, Single x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1fNV((UInt32)index, (Single)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1fvNV")]
            public static 
            unsafe void VertexAttrib1(Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1fvNV((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1fvNV")]
            public static 
            unsafe void VertexAttrib1(UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1fvNV((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib1hNV")]
            public static 
            void VertexAttrib1h(Int32 index, OpenTK.Half x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1hNV((UInt32)index, (OpenTK.Half)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib1hNV")]
            public static 
            void VertexAttrib1h(UInt32 index, OpenTK.Half x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1hNV((UInt32)index, (OpenTK.Half)x);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib1hvNV")]
            public static 
            unsafe void VertexAttrib1h(Int32 index, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1hvNV((UInt32)index, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib1hvNV")]
            public static 
            unsafe void VertexAttrib1h(UInt32 index, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1hvNV((UInt32)index, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1sNV")]
            public static 
            void VertexAttrib1(Int32 index, Int16 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1sNV((UInt32)index, (Int16)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1sNV")]
            public static 
            void VertexAttrib1(UInt32 index, Int16 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1sNV((UInt32)index, (Int16)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1svNV")]
            public static 
            unsafe void VertexAttrib1(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1svNV((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib1svNV")]
            public static 
            unsafe void VertexAttrib1(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1svNV((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2dNV")]
            public static 
            void VertexAttrib2(Int32 index, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2dNV((UInt32)index, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2dNV")]
            public static 
            void VertexAttrib2(UInt32 index, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2dNV((UInt32)index, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2dvNV")]
            public static 
            unsafe void VertexAttrib2(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2dvNV((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2dvNV")]
            public static 
            void VertexAttrib2(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2dvNV")]
            public static 
            void VertexAttrib2(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2dvNV")]
            public static 
            unsafe void VertexAttrib2(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2dvNV((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2dvNV")]
            public static 
            void VertexAttrib2(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2dvNV")]
            public static 
            void VertexAttrib2(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2fNV")]
            public static 
            void VertexAttrib2(Int32 index, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2fNV((UInt32)index, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2fNV")]
            public static 
            void VertexAttrib2(UInt32 index, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2fNV((UInt32)index, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2fvNV")]
            public static 
            void VertexAttrib2(Int32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2fvNV")]
            public static 
            unsafe void VertexAttrib2(Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2fvNV((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2fvNV")]
            public static 
            void VertexAttrib2(Int32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2fvNV")]
            public static 
            void VertexAttrib2(UInt32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2fvNV")]
            public static 
            unsafe void VertexAttrib2(UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2fvNV((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2fvNV")]
            public static 
            void VertexAttrib2(UInt32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib2hNV")]
            public static 
            void VertexAttrib2h(Int32 index, OpenTK.Half x, OpenTK.Half y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2hNV((UInt32)index, (OpenTK.Half)x, (OpenTK.Half)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib2hNV")]
            public static 
            void VertexAttrib2h(UInt32 index, OpenTK.Half x, OpenTK.Half y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2hNV((UInt32)index, (OpenTK.Half)x, (OpenTK.Half)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            unsafe void VertexAttrib2h(Int32 index, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2hvNV((UInt32)index, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            void VertexAttrib2h(Int32 index, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            void VertexAttrib2h(Int32 index, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            unsafe void VertexAttrib2h(UInt32 index, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2hvNV((UInt32)index, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            void VertexAttrib2h(UInt32 index, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            void VertexAttrib2h(UInt32 index, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2sNV")]
            public static 
            void VertexAttrib2(Int32 index, Int16 x, Int16 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2sNV((UInt32)index, (Int16)x, (Int16)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2sNV")]
            public static 
            void VertexAttrib2(UInt32 index, Int16 x, Int16 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2sNV((UInt32)index, (Int16)x, (Int16)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2svNV")]
            public static 
            unsafe void VertexAttrib2(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2svNV((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2svNV")]
            public static 
            void VertexAttrib2(Int32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2svNV")]
            public static 
            void VertexAttrib2(Int32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2svNV")]
            public static 
            unsafe void VertexAttrib2(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2svNV((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2svNV")]
            public static 
            void VertexAttrib2(UInt32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib2svNV")]
            public static 
            void VertexAttrib2(UInt32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3dNV")]
            public static 
            void VertexAttrib3(Int32 index, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3dNV((UInt32)index, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3dNV")]
            public static 
            void VertexAttrib3(UInt32 index, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3dNV((UInt32)index, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3dvNV")]
            public static 
            unsafe void VertexAttrib3(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3dvNV((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3dvNV")]
            public static 
            void VertexAttrib3(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3dvNV")]
            public static 
            void VertexAttrib3(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3dvNV")]
            public static 
            unsafe void VertexAttrib3(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3dvNV((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3dvNV")]
            public static 
            void VertexAttrib3(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3dvNV")]
            public static 
            void VertexAttrib3(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3fNV")]
            public static 
            void VertexAttrib3(Int32 index, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3fNV((UInt32)index, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3fNV")]
            public static 
            void VertexAttrib3(UInt32 index, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3fNV((UInt32)index, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3fvNV")]
            public static 
            void VertexAttrib3(Int32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3fvNV")]
            public static 
            unsafe void VertexAttrib3(Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3fvNV((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3fvNV")]
            public static 
            void VertexAttrib3(Int32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3fvNV")]
            public static 
            void VertexAttrib3(UInt32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3fvNV")]
            public static 
            unsafe void VertexAttrib3(UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3fvNV((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3fvNV")]
            public static 
            void VertexAttrib3(UInt32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib3hNV")]
            public static 
            void VertexAttrib3h(Int32 index, OpenTK.Half x, OpenTK.Half y, OpenTK.Half z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3hNV((UInt32)index, (OpenTK.Half)x, (OpenTK.Half)y, (OpenTK.Half)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib3hNV")]
            public static 
            void VertexAttrib3h(UInt32 index, OpenTK.Half x, OpenTK.Half y, OpenTK.Half z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3hNV((UInt32)index, (OpenTK.Half)x, (OpenTK.Half)y, (OpenTK.Half)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            unsafe void VertexAttrib3h(Int32 index, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3hvNV((UInt32)index, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            void VertexAttrib3h(Int32 index, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            void VertexAttrib3h(Int32 index, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            unsafe void VertexAttrib3h(UInt32 index, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3hvNV((UInt32)index, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            void VertexAttrib3h(UInt32 index, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            void VertexAttrib3h(UInt32 index, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3sNV")]
            public static 
            void VertexAttrib3(Int32 index, Int16 x, Int16 y, Int16 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3sNV((UInt32)index, (Int16)x, (Int16)y, (Int16)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3sNV")]
            public static 
            void VertexAttrib3(UInt32 index, Int16 x, Int16 y, Int16 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3sNV((UInt32)index, (Int16)x, (Int16)y, (Int16)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3svNV")]
            public static 
            unsafe void VertexAttrib3(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3svNV((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3svNV")]
            public static 
            void VertexAttrib3(Int32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3svNV")]
            public static 
            void VertexAttrib3(Int32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3svNV")]
            public static 
            unsafe void VertexAttrib3(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3svNV((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3svNV")]
            public static 
            void VertexAttrib3(UInt32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib3svNV")]
            public static 
            void VertexAttrib3(UInt32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4dNV")]
            public static 
            void VertexAttrib4(Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4dNV((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4dNV")]
            public static 
            void VertexAttrib4(UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4dNV((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4dvNV")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4dvNV((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4dvNV")]
            public static 
            void VertexAttrib4(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4dvNV")]
            public static 
            void VertexAttrib4(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4dvNV")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4dvNV((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4dvNV")]
            public static 
            void VertexAttrib4(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4dvNV")]
            public static 
            void VertexAttrib4(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4dvNV((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4fNV")]
            public static 
            void VertexAttrib4(Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4fNV((UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4fNV")]
            public static 
            void VertexAttrib4(UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4fNV((UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4fvNV")]
            public static 
            void VertexAttrib4(Int32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4fvNV")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4fvNV((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4fvNV")]
            public static 
            void VertexAttrib4(Int32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4fvNV")]
            public static 
            void VertexAttrib4(UInt32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4fvNV")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4fvNV((UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4fvNV")]
            public static 
            void VertexAttrib4(UInt32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4fvNV((UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib4hNV")]
            public static 
            void VertexAttrib4h(Int32 index, OpenTK.Half x, OpenTK.Half y, OpenTK.Half z, OpenTK.Half w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4hNV((UInt32)index, (OpenTK.Half)x, (OpenTK.Half)y, (OpenTK.Half)z, (OpenTK.Half)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib4hNV")]
            public static 
            void VertexAttrib4h(UInt32 index, OpenTK.Half x, OpenTK.Half y, OpenTK.Half z, OpenTK.Half w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4hNV((UInt32)index, (OpenTK.Half)x, (OpenTK.Half)y, (OpenTK.Half)z, (OpenTK.Half)w);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            unsafe void VertexAttrib4h(Int32 index, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4hvNV((UInt32)index, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            void VertexAttrib4h(Int32 index, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            void VertexAttrib4h(Int32 index, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            unsafe void VertexAttrib4h(UInt32 index, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4hvNV((UInt32)index, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            void VertexAttrib4h(UInt32 index, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            void VertexAttrib4h(UInt32 index, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4hvNV((UInt32)index, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4sNV")]
            public static 
            void VertexAttrib4(Int32 index, Int16 x, Int16 y, Int16 z, Int16 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4sNV((UInt32)index, (Int16)x, (Int16)y, (Int16)z, (Int16)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4sNV")]
            public static 
            void VertexAttrib4(UInt32 index, Int16 x, Int16 y, Int16 z, Int16 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4sNV((UInt32)index, (Int16)x, (Int16)y, (Int16)z, (Int16)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4svNV")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4svNV((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4svNV")]
            public static 
            void VertexAttrib4(Int32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4svNV")]
            public static 
            void VertexAttrib4(Int32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4svNV")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4svNV((UInt32)index, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4svNV")]
            public static 
            void VertexAttrib4(UInt32 index, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4svNV")]
            public static 
            void VertexAttrib4(UInt32 index, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4svNV((UInt32)index, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4ubNV")]
            public static 
            void VertexAttrib4(Int32 index, Byte x, Byte y, Byte z, Byte w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4ubNV((UInt32)index, (Byte)x, (Byte)y, (Byte)z, (Byte)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4ubNV")]
            public static 
            void VertexAttrib4(UInt32 index, Byte x, Byte y, Byte z, Byte w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4ubNV((UInt32)index, (Byte)x, (Byte)y, (Byte)z, (Byte)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4ubvNV")]
            public static 
            unsafe void VertexAttrib4(Int32 index, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4ubvNV((UInt32)index, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4ubvNV")]
            public static 
            void VertexAttrib4(Int32 index, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4ubvNV((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4ubvNV")]
            public static 
            void VertexAttrib4(Int32 index, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4ubvNV((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4ubvNV")]
            public static 
            unsafe void VertexAttrib4(UInt32 index, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4ubvNV((UInt32)index, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4ubvNV")]
            public static 
            void VertexAttrib4(UInt32 index, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4ubvNV((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="v0">
        /// <para>
        /// Specifies the new values to be used for the specified vertex attribute.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttrib4ubvNV")]
            public static 
            void VertexAttrib4(UInt32 index, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4ubvNV((UInt32)index, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(Int32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, [In, Out] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(Int32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, [In, Out] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(Int32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, [In, Out] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(Int32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, [In, Out] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer(Int32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, [In, Out] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, [In, Out] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, [In, Out] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, [In, Out] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define an array of generic vertex attribute data
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex attribute to be modified.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the number of components per generic vertex attribute. Must be 1, 2, 3, or 4. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// Specifies whether fixed-point data values should be normalized (GL_TRUE) or converted directly as fixed-point values (GL_FALSE) when they are accessed.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
        /// </para>
        /// </param>
        /// <param name="pointer">
        /// <para>
        /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer(UInt32 index, Int32 fsize, VertexAttribParameterArb type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1dvNV")]
            public static 
            unsafe void VertexAttribs1(Int32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1dvNV((UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1dvNV")]
            public static 
            void VertexAttribs1(Int32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1dvNV")]
            public static 
            void VertexAttribs1(Int32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1dvNV")]
            public static 
            unsafe void VertexAttribs1(UInt32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1dvNV((UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1dvNV")]
            public static 
            void VertexAttribs1(UInt32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1dvNV")]
            public static 
            void VertexAttribs1(UInt32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1fvNV")]
            public static 
            void VertexAttribs1(Int32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1fvNV")]
            public static 
            unsafe void VertexAttribs1(Int32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1fvNV((UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1fvNV")]
            public static 
            void VertexAttribs1(Int32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1fvNV")]
            public static 
            void VertexAttribs1(UInt32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1fvNV")]
            public static 
            unsafe void VertexAttribs1(UInt32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1fvNV((UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1fvNV")]
            public static 
            void VertexAttribs1(UInt32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            unsafe void VertexAttribs1h(Int32 index, Int32 n, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            void VertexAttribs1h(Int32 index, Int32 n, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            void VertexAttribs1h(Int32 index, Int32 n, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            unsafe void VertexAttribs1h(UInt32 index, Int32 n, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            void VertexAttribs1h(UInt32 index, Int32 n, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            void VertexAttribs1h(UInt32 index, Int32 n, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1svNV")]
            public static 
            unsafe void VertexAttribs1(Int32 index, Int32 count, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1svNV((UInt32)index, (Int32)count, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1svNV")]
            public static 
            void VertexAttribs1(Int32 index, Int32 count, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1svNV")]
            public static 
            void VertexAttribs1(Int32 index, Int32 count, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1svNV")]
            public static 
            unsafe void VertexAttribs1(UInt32 index, Int32 count, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1svNV((UInt32)index, (Int32)count, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1svNV")]
            public static 
            void VertexAttribs1(UInt32 index, Int32 count, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs1svNV")]
            public static 
            void VertexAttribs1(UInt32 index, Int32 count, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2dvNV")]
            public static 
            unsafe void VertexAttribs2(Int32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2dvNV((UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2dvNV")]
            public static 
            void VertexAttribs2(Int32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2dvNV")]
            public static 
            void VertexAttribs2(Int32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2dvNV")]
            public static 
            unsafe void VertexAttribs2(UInt32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2dvNV((UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2dvNV")]
            public static 
            void VertexAttribs2(UInt32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2dvNV")]
            public static 
            void VertexAttribs2(UInt32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2fvNV")]
            public static 
            void VertexAttribs2(Int32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2fvNV")]
            public static 
            unsafe void VertexAttribs2(Int32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2fvNV((UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2fvNV")]
            public static 
            void VertexAttribs2(Int32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2fvNV")]
            public static 
            void VertexAttribs2(UInt32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2fvNV")]
            public static 
            unsafe void VertexAttribs2(UInt32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2fvNV((UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2fvNV")]
            public static 
            void VertexAttribs2(UInt32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            unsafe void VertexAttribs2h(Int32 index, Int32 n, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            void VertexAttribs2h(Int32 index, Int32 n, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            void VertexAttribs2h(Int32 index, Int32 n, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            unsafe void VertexAttribs2h(UInt32 index, Int32 n, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            void VertexAttribs2h(UInt32 index, Int32 n, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            void VertexAttribs2h(UInt32 index, Int32 n, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2svNV")]
            public static 
            unsafe void VertexAttribs2(Int32 index, Int32 count, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2svNV((UInt32)index, (Int32)count, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2svNV")]
            public static 
            void VertexAttribs2(Int32 index, Int32 count, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2svNV")]
            public static 
            void VertexAttribs2(Int32 index, Int32 count, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2svNV")]
            public static 
            unsafe void VertexAttribs2(UInt32 index, Int32 count, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2svNV((UInt32)index, (Int32)count, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2svNV")]
            public static 
            void VertexAttribs2(UInt32 index, Int32 count, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs2svNV")]
            public static 
            void VertexAttribs2(UInt32 index, Int32 count, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3dvNV")]
            public static 
            unsafe void VertexAttribs3(Int32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3dvNV((UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3dvNV")]
            public static 
            void VertexAttribs3(Int32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3dvNV")]
            public static 
            void VertexAttribs3(Int32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3dvNV")]
            public static 
            unsafe void VertexAttribs3(UInt32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3dvNV((UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3dvNV")]
            public static 
            void VertexAttribs3(UInt32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3dvNV")]
            public static 
            void VertexAttribs3(UInt32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3fvNV")]
            public static 
            void VertexAttribs3(Int32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3fvNV")]
            public static 
            unsafe void VertexAttribs3(Int32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3fvNV((UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3fvNV")]
            public static 
            void VertexAttribs3(Int32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3fvNV")]
            public static 
            void VertexAttribs3(UInt32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3fvNV")]
            public static 
            unsafe void VertexAttribs3(UInt32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3fvNV((UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3fvNV")]
            public static 
            void VertexAttribs3(UInt32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            unsafe void VertexAttribs3h(Int32 index, Int32 n, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            void VertexAttribs3h(Int32 index, Int32 n, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            void VertexAttribs3h(Int32 index, Int32 n, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            unsafe void VertexAttribs3h(UInt32 index, Int32 n, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            void VertexAttribs3h(UInt32 index, Int32 n, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            void VertexAttribs3h(UInt32 index, Int32 n, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3svNV")]
            public static 
            unsafe void VertexAttribs3(Int32 index, Int32 count, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3svNV((UInt32)index, (Int32)count, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3svNV")]
            public static 
            void VertexAttribs3(Int32 index, Int32 count, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3svNV")]
            public static 
            void VertexAttribs3(Int32 index, Int32 count, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3svNV")]
            public static 
            unsafe void VertexAttribs3(UInt32 index, Int32 count, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3svNV((UInt32)index, (Int32)count, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3svNV")]
            public static 
            void VertexAttribs3(UInt32 index, Int32 count, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs3svNV")]
            public static 
            void VertexAttribs3(UInt32 index, Int32 count, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4dvNV")]
            public static 
            unsafe void VertexAttribs4(Int32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4dvNV((UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4dvNV")]
            public static 
            void VertexAttribs4(Int32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4dvNV")]
            public static 
            void VertexAttribs4(Int32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4dvNV")]
            public static 
            unsafe void VertexAttribs4(UInt32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4dvNV((UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4dvNV")]
            public static 
            void VertexAttribs4(UInt32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4dvNV")]
            public static 
            void VertexAttribs4(UInt32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4dvNV((UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4fvNV")]
            public static 
            void VertexAttribs4(Int32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4fvNV")]
            public static 
            unsafe void VertexAttribs4(Int32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4fvNV((UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4fvNV")]
            public static 
            void VertexAttribs4(Int32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4fvNV")]
            public static 
            void VertexAttribs4(UInt32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4fvNV")]
            public static 
            unsafe void VertexAttribs4(UInt32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4fvNV((UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4fvNV")]
            public static 
            void VertexAttribs4(UInt32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4fvNV((UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            unsafe void VertexAttribs4h(Int32 index, Int32 n, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            void VertexAttribs4h(Int32 index, Int32 n, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            void VertexAttribs4h(Int32 index, Int32 n, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            unsafe void VertexAttribs4h(UInt32 index, Int32 n, OpenTK.Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            void VertexAttribs4h(UInt32 index, Int32 n, OpenTK.Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            void VertexAttribs4h(UInt32 index, Int32 n, ref OpenTK.Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (OpenTK.Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4svNV")]
            public static 
            unsafe void VertexAttribs4(Int32 index, Int32 count, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4svNV((UInt32)index, (Int32)count, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4svNV")]
            public static 
            void VertexAttribs4(Int32 index, Int32 count, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4svNV")]
            public static 
            void VertexAttribs4(Int32 index, Int32 count, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4svNV")]
            public static 
            unsafe void VertexAttribs4(UInt32 index, Int32 count, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4svNV((UInt32)index, (Int32)count, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4svNV")]
            public static 
            void VertexAttribs4(UInt32 index, Int32 count, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4svNV")]
            public static 
            void VertexAttribs4(UInt32 index, Int32 count, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4svNV((UInt32)index, (Int32)count, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4ubvNV")]
            public static 
            unsafe void VertexAttribs4(Int32 index, Int32 count, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4ubvNV((UInt32)index, (Int32)count, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4ubvNV")]
            public static 
            void VertexAttribs4(Int32 index, Int32 count, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4ubvNV((UInt32)index, (Int32)count, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4ubvNV")]
            public static 
            void VertexAttribs4(Int32 index, Int32 count, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4ubvNV((UInt32)index, (Int32)count, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4ubvNV")]
            public static 
            unsafe void VertexAttribs4(UInt32 index, Int32 count, Byte* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4ubvNV((UInt32)index, (Int32)count, (Byte*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4ubvNV")]
            public static 
            void VertexAttribs4(UInt32 index, Int32 count, Byte[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4ubvNV((UInt32)index, (Int32)count, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvVertexProgram", Version = "1.2", EntryPoint = "glVertexAttribs4ubvNV")]
            public static 
            void VertexAttribs4(UInt32 index, Int32 count, ref Byte v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4ubvNV((UInt32)index, (Int32)count, (Byte*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexWeighthNV")]
            public static 
            void VertexWeighth(OpenTK.Half weight)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexWeighthNV((OpenTK.Half)weight);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NvHalfFloat", Version = "1.2", EntryPoint = "glVertexWeighthvNV")]
            public static 
            unsafe void VertexWeighth(OpenTK.Half* weight)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexWeighthvNV((OpenTK.Half*)weight);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Pgi
        {
            
        /// <summary>
        /// Specify implementation-specific hints
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a symbolic constant indicating the behavior to be controlled. GL_FOG_HINT, GL_GENERATE_MIPMAP_HINT, GL_LINE_SMOOTH_HINT, GL_PERSPECTIVE_CORRECTION_HINT, GL_POINT_SMOOTH_HINT, GL_POLYGON_SMOOTH_HINT, GL_TEXTURE_COMPRESSION_HINT, and GL_FRAGMENT_SHADER_DERIVATIVE_HINT are accepted.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies a symbolic constant indicating the desired behavior. GL_FASTEST, GL_NICEST, and GL_DONT_CARE are accepted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "PgiMiscHints", Version = "1.1", EntryPoint = "glHintPGI")]
            public static 
            void Hint(PgiMiscHints target, Int32 mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glHintPGI((PgiMiscHints)target, (Int32)mode);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Sgi
        {
            
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableParameterfvSGI")]
            public static 
            void ColorTableParameter(SgiColorTable target, SgiColorTable pname, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glColorTableParameterfvSGI((SgiColorTable)target, (SgiColorTable)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableParameterfvSGI")]
            public static 
            unsafe void ColorTableParameter(SgiColorTable target, SgiColorTable pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorTableParameterfvSGI((SgiColorTable)target, (SgiColorTable)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableParameterfvSGI")]
            public static 
            void ColorTableParameter(SgiColorTable target, SgiColorTable pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glColorTableParameterfvSGI((SgiColorTable)target, (SgiColorTable)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableParameterivSGI")]
            public static 
            unsafe void ColorTableParameter(SgiColorTable target, SgiColorTable pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorTableParameterivSGI((SgiColorTable)target, (SgiColorTable)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableParameterivSGI")]
            public static 
            void ColorTableParameter(SgiColorTable target, SgiColorTable pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glColorTableParameterivSGI((SgiColorTable)target, (SgiColorTable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Set color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameters are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableParameterivSGI")]
            public static 
            void ColorTableParameter(SgiColorTable target, SgiColorTable pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glColorTableParameterivSGI((SgiColorTable)target, (SgiColorTable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable<T5>(SgiColorTable target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] ref T5 table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableSGI((SgiColorTable)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable<T5>(SgiColorTable target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,,] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableSGI((SgiColorTable)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable<T5>(SgiColorTable target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[,] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableSGI((SgiColorTable)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable<T5>(SgiColorTable target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, [In, Out] T5[] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableSGI((SgiColorTable)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Define a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The number of entries in the color lookup table specified by data.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable(SgiColorTable target, PixelInternalFormat internalformat, Int32 width, PixelFormat format, PixelType type, IntPtr table)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorTableSGI((SgiColorTable)target, (PixelInternalFormat)internalformat, (Int32)width, (PixelFormat)format, (PixelType)type, (IntPtr)table);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Copy pixels into a color table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The color table target. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal storage format of the texture image. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The x coordinate of the lower-left corner of the pixel rectangle to be transferred to the color table.
        /// </para>
        /// </param>
        /// <param name="y">
        /// <para>
        /// The y coordinate of the lower-left corner of the pixel rectangle to be transferred to the color table.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the pixel rectangle.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glCopyColorTableSGI")]
            public static 
            void CopyColorTable(SgiColorTable target, PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyColorTableSGI((SgiColorTable)target, (PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableParameterfvSGI")]
            public static 
            void GetColorTableParameter(SgiColorTable target, SgiColorTable pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetColorTableParameterfvSGI((SgiColorTable)target, (SgiColorTable)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableParameterfvSGI")]
            public static 
            unsafe void GetColorTableParameter(SgiColorTable target, SgiColorTable pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableParameterfvSGI((SgiColorTable)target, (SgiColorTable)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableParameterfvSGI")]
            public static 
            void GetColorTableParameter(SgiColorTable target, SgiColorTable pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetColorTableParameterfvSGI((SgiColorTable)target, (SgiColorTable)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableParameterivSGI")]
            public static 
            unsafe void GetColorTableParameter(SgiColorTable target, SgiColorTable pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableParameterivSGI((SgiColorTable)target, (SgiColorTable)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableParameterivSGI")]
            public static 
            void GetColorTableParameter(SgiColorTable target, SgiColorTable pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetColorTableParameterivSGI((SgiColorTable)target, (SgiColorTable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Get color lookup table parameters
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// A pointer to an array where the values of the parameter will be stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableParameterivSGI")]
            public static 
            void GetColorTableParameter(SgiColorTable target, SgiColorTable pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetColorTableParameterivSGI((SgiColorTable)target, (SgiColorTable)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable<T3>(SgiColorTable target, PixelFormat format, PixelType type, [In, Out] ref T3 table)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableSGI((SgiColorTable)target, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable<T3>(SgiColorTable target, PixelFormat format, PixelType type, [In, Out] T3[,,] table)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableSGI((SgiColorTable)target, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable<T3>(SgiColorTable target, PixelFormat format, PixelType type, [In, Out] T3[,] table)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableSGI((SgiColorTable)target, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable<T3>(SgiColorTable target, PixelFormat format, PixelType type, [In, Out] T3[] table)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableSGI((SgiColorTable)target, (PixelFormat)format, (PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Retrieve contents of a color lookup table
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.
        /// </para>
        /// </param>
        /// <param name="table">
        /// <para>
        /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgiColorTable", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable(SgiColorTable target, PixelFormat format, PixelType type, [Out] IntPtr table)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableSGI((SgiColorTable)target, (PixelFormat)format, (PixelType)type, (IntPtr)table);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Sgis
        {
            [AutoGenerated(Category = "SgisDetailTexture", Version = "1.0", EntryPoint = "glDetailTexFuncSGIS")]
            public static 
            void DetailTexFunc(TextureTarget target, Int32 n, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glDetailTexFuncSGIS((TextureTarget)target, (Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisDetailTexture", Version = "1.0", EntryPoint = "glDetailTexFuncSGIS")]
            public static 
            unsafe void DetailTexFunc(TextureTarget target, Int32 n, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDetailTexFuncSGIS((TextureTarget)target, (Int32)n, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisDetailTexture", Version = "1.0", EntryPoint = "glDetailTexFuncSGIS")]
            public static 
            void DetailTexFunc(TextureTarget target, Int32 n, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glDetailTexFuncSGIS((TextureTarget)target, (Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisFogFunction", Version = "1.1", EntryPoint = "glFogFuncSGIS")]
            public static 
            void FogFunc(Int32 n, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glFogFuncSGIS((Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisFogFunction", Version = "1.1", EntryPoint = "glFogFuncSGIS")]
            public static 
            unsafe void FogFunc(Int32 n, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogFuncSGIS((Int32)n, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisFogFunction", Version = "1.1", EntryPoint = "glFogFuncSGIS")]
            public static 
            void FogFunc(Int32 n, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glFogFuncSGIS((Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisDetailTexture", Version = "1.0", EntryPoint = "glGetDetailTexFuncSGIS")]
            public static 
            void GetDetailTexFunc(TextureTarget target, [Out] out Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glGetDetailTexFuncSGIS((TextureTarget)target, (Single*)points_ptr);
                        points = *points_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisDetailTexture", Version = "1.0", EntryPoint = "glGetDetailTexFuncSGIS")]
            public static 
            unsafe void GetDetailTexFunc(TextureTarget target, [Out] Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetDetailTexFuncSGIS((TextureTarget)target, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisDetailTexture", Version = "1.0", EntryPoint = "glGetDetailTexFuncSGIS")]
            public static 
            void GetDetailTexFunc(TextureTarget target, [Out] Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glGetDetailTexFuncSGIS((TextureTarget)target, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisFogFunction", Version = "1.1", EntryPoint = "glGetFogFuncSGIS")]
            public static 
            void GetFogFunc([Out] out Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glGetFogFuncSGIS((Single*)points_ptr);
                        points = *points_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisFogFunction", Version = "1.1", EntryPoint = "glGetFogFuncSGIS")]
            public static 
            unsafe void GetFogFunc([Out] Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFogFuncSGIS((Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisFogFunction", Version = "1.1", EntryPoint = "glGetFogFuncSGIS")]
            public static 
            void GetFogFunc([Out] Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glGetFogFuncSGIS((Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
            public static 
            void GetPixelTexGenParameter(SgisPixelTexture pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetPixelTexGenParameterfvSGIS((SgisPixelTexture)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
            public static 
            unsafe void GetPixelTexGenParameter(SgisPixelTexture pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPixelTexGenParameterfvSGIS((SgisPixelTexture)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
            public static 
            void GetPixelTexGenParameter(SgisPixelTexture pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetPixelTexGenParameterfvSGIS((SgisPixelTexture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
            public static 
            unsafe void GetPixelTexGenParameter(SgisPixelTexture pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPixelTexGenParameterivSGIS((SgisPixelTexture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
            public static 
            void GetPixelTexGenParameter(SgisPixelTexture pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetPixelTexGenParameterivSGIS((SgisPixelTexture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
            public static 
            void GetPixelTexGenParameter(SgisPixelTexture pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetPixelTexGenParameterivSGIS((SgisPixelTexture)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisSharpenTexture", Version = "1.0", EntryPoint = "glGetSharpenTexFuncSGIS")]
            public static 
            void GetSharpenTexFunc(TextureTarget target, [Out] out Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glGetSharpenTexFuncSGIS((TextureTarget)target, (Single*)points_ptr);
                        points = *points_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisSharpenTexture", Version = "1.0", EntryPoint = "glGetSharpenTexFuncSGIS")]
            public static 
            unsafe void GetSharpenTexFunc(TextureTarget target, [Out] Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetSharpenTexFuncSGIS((TextureTarget)target, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisSharpenTexture", Version = "1.0", EntryPoint = "glGetSharpenTexFuncSGIS")]
            public static 
            void GetSharpenTexFunc(TextureTarget target, [Out] Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glGetSharpenTexFuncSGIS((TextureTarget)target, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTextureFilter4", Version = "1.0", EntryPoint = "glGetTexFilterFuncSGIS")]
            public static 
            void GetTexFilterFunc(TextureTarget target, SgisTextureFilter4 filter, [Out] out Single weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = &weights)
                    {
                        Delegates.glGetTexFilterFuncSGIS((TextureTarget)target, (SgisTextureFilter4)filter, (Single*)weights_ptr);
                        weights = *weights_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisTextureFilter4", Version = "1.0", EntryPoint = "glGetTexFilterFuncSGIS")]
            public static 
            unsafe void GetTexFilterFunc(TextureTarget target, SgisTextureFilter4 filter, [Out] Single* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexFilterFuncSGIS((TextureTarget)target, (SgisTextureFilter4)filter, (Single*)weights);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTextureFilter4", Version = "1.0", EntryPoint = "glGetTexFilterFuncSGIS")]
            public static 
            void GetTexFilterFunc(TextureTarget target, SgisTextureFilter4 filter, [Out] Single[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = weights)
                    {
                        Delegates.glGetTexFilterFuncSGIS((TextureTarget)target, (SgisTextureFilter4)filter, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glPixelTexGenParameterfSGIS")]
            public static 
            void PixelTexGenParameter(SgisPixelTexture pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenParameterfSGIS((SgisPixelTexture)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glPixelTexGenParameterfvSGIS")]
            public static 
            unsafe void PixelTexGenParameter(SgisPixelTexture pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenParameterfvSGIS((SgisPixelTexture)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glPixelTexGenParameterfvSGIS")]
            public static 
            void PixelTexGenParameter(SgisPixelTexture pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glPixelTexGenParameterfvSGIS((SgisPixelTexture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glPixelTexGenParameteriSGIS")]
            public static 
            void PixelTexGenParameter(SgisPixelTexture pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenParameteriSGIS((SgisPixelTexture)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glPixelTexGenParameterivSGIS")]
            public static 
            unsafe void PixelTexGenParameter(SgisPixelTexture pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenParameterivSGIS((SgisPixelTexture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisPixelTexture", Version = "1.0", EntryPoint = "glPixelTexGenParameterivSGIS")]
            public static 
            void PixelTexGenParameter(SgisPixelTexture pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glPixelTexGenParameterivSGIS((SgisPixelTexture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgisPointParameters", Version = "1.0", EntryPoint = "glPointParameterfSGIS")]
            public static 
            void PointParameter(SgisPointParameters pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfSGIS((SgisPointParameters)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisPointParameters", Version = "1.0", EntryPoint = "glPointParameterfvSGIS")]
            public static 
            unsafe void PointParameter(SgisPointParameters pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfvSGIS((SgisPointParameters)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. GL_POINT_SIZE_MIN, GL_POINT_SIZE_MAX, GL_POINT_FADE_THRESHOLD_SIZE, and GL_POINT_SPRITE_COORD_ORIGIN are accepted.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value that pname will be set to.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "SgisPointParameters", Version = "1.0", EntryPoint = "glPointParameterfvSGIS")]
            public static 
            void PointParameter(SgisPointParameters pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glPointParameterfvSGIS((SgisPointParameters)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisMultisample", Version = "1.1", EntryPoint = "glSampleMaskSGIS")]
            public static 
            void SampleMask(Single value, bool invert)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleMaskSGIS((Single)value, (bool)invert);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisMultisample", Version = "1.0", EntryPoint = "glSamplePatternSGIS")]
            public static 
            void SamplePattern(SgisMultisample pattern)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSamplePatternSGIS((SgisMultisample)pattern);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisSharpenTexture", Version = "1.0", EntryPoint = "glSharpenTexFuncSGIS")]
            public static 
            void SharpenTexFunc(TextureTarget target, Int32 n, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glSharpenTexFuncSGIS((TextureTarget)target, (Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisSharpenTexture", Version = "1.0", EntryPoint = "glSharpenTexFuncSGIS")]
            public static 
            unsafe void SharpenTexFunc(TextureTarget target, Int32 n, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSharpenTexFuncSGIS((TextureTarget)target, (Int32)n, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisSharpenTexture", Version = "1.0", EntryPoint = "glSharpenTexFuncSGIS")]
            public static 
            void SharpenTexFunc(TextureTarget target, Int32 n, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glSharpenTexFuncSGIS((TextureTarget)target, (Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTextureFilter4", Version = "1.0", EntryPoint = "glTexFilterFuncSGIS")]
            public static 
            void TexFilterFunc(TextureTarget target, SgisTextureFilter4 filter, Int32 n, ref Single weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = &weights)
                    {
                        Delegates.glTexFilterFuncSGIS((TextureTarget)target, (SgisTextureFilter4)filter, (Int32)n, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgisTextureFilter4", Version = "1.0", EntryPoint = "glTexFilterFuncSGIS")]
            public static 
            unsafe void TexFilterFunc(TextureTarget target, SgisTextureFilter4 filter, Int32 n, Single* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexFilterFuncSGIS((TextureTarget)target, (SgisTextureFilter4)filter, (Int32)n, (Single*)weights);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTextureFilter4", Version = "1.0", EntryPoint = "glTexFilterFuncSGIS")]
            public static 
            void TexFilterFunc(TextureTarget target, SgisTextureFilter4 filter, Int32 n, Single[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = weights)
                    {
                        Delegates.glTexFilterFuncSGIS((TextureTarget)target, (SgisTextureFilter4)filter, (Int32)n, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D<T10>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, PixelFormat format, PixelType type, [In, Out] ref T10 pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage4DSGIS((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D<T10>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[,,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage4DSGIS((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D<T10>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage4DSGIS((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D<T10>(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, PixelFormat format, PixelType type, [In, Out] T10[] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage4DSGIS((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D(TextureTarget target, Int32 level, PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexImage4DSGIS((TextureTarget)target, (Int32)level, (PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D<T12>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, PixelFormat format, PixelType type, [In, Out] ref T12 pixels)
                where T12 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage4DSGIS((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D<T12>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, PixelFormat format, PixelType type, [In, Out] T12[,,] pixels)
                where T12 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage4DSGIS((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D<T12>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, PixelFormat format, PixelType type, [In, Out] T12[,] pixels)
                where T12 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage4DSGIS((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D<T12>(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, PixelFormat format, PixelType type, [In, Out] T12[] pixels)
                where T12 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage4DSGIS((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (PixelFormat)format, (PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTexture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D(TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, PixelFormat format, PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexSubImage4DSGIS((TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (PixelFormat)format, (PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgisTextureColorMask", Version = "1.1", EntryPoint = "glTextureColorMaskSGIS")]
            public static 
            void TextureColorMask(bool red, bool green, bool blue, bool alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureColorMaskSGIS((bool)red, (bool)green, (bool)blue, (bool)alpha);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Sgix
        {
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glAsyncMarkerSGIX")]
            public static 
            void AsyncMarker(Int32 marker)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAsyncMarkerSGIX((UInt32)marker);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glAsyncMarkerSGIX")]
            public static 
            void AsyncMarker(UInt32 marker)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAsyncMarkerSGIX((UInt32)marker);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glDeformationMap3dSGIX")]
            public static 
            unsafe void DeformationMap3(SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, Double* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeformationMap3dSGIX((SgixPolynomialFfd)target, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double)w1, (Double)w2, (Int32)wstride, (Int32)worder, (Double*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glDeformationMap3dSGIX")]
            public static 
            void DeformationMap3(SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, Double[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = points)
                    {
                        Delegates.glDeformationMap3dSGIX((SgixPolynomialFfd)target, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double)w1, (Double)w2, (Int32)wstride, (Int32)worder, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glDeformationMap3dSGIX")]
            public static 
            void DeformationMap3(SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, ref Double points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* points_ptr = &points)
                    {
                        Delegates.glDeformationMap3dSGIX((SgixPolynomialFfd)target, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double)w1, (Double)w2, (Int32)wstride, (Int32)worder, (Double*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glDeformationMap3fSGIX")]
            public static 
            void DeformationMap3(SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glDeformationMap3fSGIX((SgixPolynomialFfd)target, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single)w1, (Single)w2, (Int32)wstride, (Int32)worder, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glDeformationMap3fSGIX")]
            public static 
            unsafe void DeformationMap3(SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeformationMap3fSGIX((SgixPolynomialFfd)target, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single)w1, (Single)w2, (Int32)wstride, (Int32)worder, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glDeformationMap3fSGIX")]
            public static 
            void DeformationMap3(SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glDeformationMap3fSGIX((SgixPolynomialFfd)target, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single)w1, (Single)w2, (Int32)wstride, (Int32)worder, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glDeformSGIX")]
            public static 
            void Deform(Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeformSGIX((UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glDeformSGIX")]
            public static 
            void Deform(UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeformSGIX((UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glDeleteAsyncMarkersSGIX")]
            public static 
            void DeleteAsyncMarkers(Int32 marker, Int32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteAsyncMarkersSGIX((UInt32)marker, (Int32)range);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glDeleteAsyncMarkersSGIX")]
            public static 
            void DeleteAsyncMarkers(UInt32 marker, Int32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteAsyncMarkersSGIX((UInt32)marker, (Int32)range);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glFinishAsyncSGIX")]
            public static 
            unsafe Int32 FinishAsync([Out] Int32* markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glFinishAsyncSGIX((UInt32*)markerp);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glFinishAsyncSGIX")]
            public static 
            Int32 FinishAsync([Out] out Int32 markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* markerp_ptr = &markerp)
                    {
                        Int32 retval = Delegates.glFinishAsyncSGIX((UInt32*)markerp_ptr);
                        markerp = *markerp_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glFinishAsyncSGIX")]
            public static 
            Int32 FinishAsync([Out] out UInt32 markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* markerp_ptr = &markerp)
                    {
                        Int32 retval = Delegates.glFinishAsyncSGIX((UInt32*)markerp_ptr);
                        markerp = *markerp_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glFinishAsyncSGIX")]
            public static 
            unsafe Int32 FinishAsync([Out] UInt32* markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glFinishAsyncSGIX((UInt32*)markerp);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFlushRaster", Version = "1.0", EntryPoint = "glFlushRasterSGIX")]
            public static 
            void FlushRaster()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushRasterSGIX();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentColorMaterialSGIX")]
            public static 
            void FragmentColorMaterial(MaterialFace face, MaterialParameter mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentColorMaterialSGIX((MaterialFace)face, (MaterialParameter)mode);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightfSGIX")]
            public static 
            void FragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightfSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightfvSGIX")]
            public static 
            unsafe void FragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightfvSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightfvSGIX")]
            public static 
            void FragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glFragmentLightfvSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightiSGIX")]
            public static 
            void FragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightiSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightivSGIX")]
            public static 
            unsafe void FragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightivSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightivSGIX")]
            public static 
            void FragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glFragmentLightivSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightModelfSGIX")]
            public static 
            void FragmentLightModel(SgixFragmentLighting pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightModelfSGIX((SgixFragmentLighting)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightModelfvSGIX")]
            public static 
            unsafe void FragmentLightModel(SgixFragmentLighting pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightModelfvSGIX((SgixFragmentLighting)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightModelfvSGIX")]
            public static 
            void FragmentLightModel(SgixFragmentLighting pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glFragmentLightModelfvSGIX((SgixFragmentLighting)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightModeliSGIX")]
            public static 
            void FragmentLightModel(SgixFragmentLighting pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightModeliSGIX((SgixFragmentLighting)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightModelivSGIX")]
            public static 
            unsafe void FragmentLightModel(SgixFragmentLighting pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightModelivSGIX((SgixFragmentLighting)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentLightModelivSGIX")]
            public static 
            void FragmentLightModel(SgixFragmentLighting pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glFragmentLightModelivSGIX((SgixFragmentLighting)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentMaterialfSGIX")]
            public static 
            void FragmentMaterial(MaterialFace face, MaterialParameter pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentMaterialfSGIX((MaterialFace)face, (MaterialParameter)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentMaterialfvSGIX")]
            public static 
            unsafe void FragmentMaterial(MaterialFace face, MaterialParameter pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentMaterialfvSGIX((MaterialFace)face, (MaterialParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentMaterialfvSGIX")]
            public static 
            void FragmentMaterial(MaterialFace face, MaterialParameter pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glFragmentMaterialfvSGIX((MaterialFace)face, (MaterialParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentMaterialiSGIX")]
            public static 
            void FragmentMaterial(MaterialFace face, MaterialParameter pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentMaterialiSGIX((MaterialFace)face, (MaterialParameter)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentMaterialivSGIX")]
            public static 
            unsafe void FragmentMaterial(MaterialFace face, MaterialParameter pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentMaterialivSGIX((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glFragmentMaterialivSGIX")]
            public static 
            void FragmentMaterial(MaterialFace face, MaterialParameter pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glFragmentMaterialivSGIX((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFramezoom", Version = "1.0", EntryPoint = "glFrameZoomSGIX")]
            public static 
            void FrameZoom(Int32 factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFrameZoomSGIX((Int32)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glGenAsyncMarkersSGIX")]
            public static 
            Int32 GenAsyncMarkers(Int32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenAsyncMarkersSGIX((Int32)range);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentLightfvSGIX")]
            public static 
            void GetFragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetFragmentLightfvSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentLightfvSGIX")]
            public static 
            unsafe void GetFragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFragmentLightfvSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentLightfvSGIX")]
            public static 
            void GetFragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetFragmentLightfvSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentLightivSGIX")]
            public static 
            unsafe void GetFragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFragmentLightivSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentLightivSGIX")]
            public static 
            void GetFragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFragmentLightivSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentLightivSGIX")]
            public static 
            void GetFragmentLight(SgixFragmentLighting light, SgixFragmentLighting pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFragmentLightivSGIX((SgixFragmentLighting)light, (SgixFragmentLighting)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialfvSGIX")]
            public static 
            void GetFragmentMaterial(MaterialFace face, MaterialParameter pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetFragmentMaterialfvSGIX((MaterialFace)face, (MaterialParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialfvSGIX")]
            public static 
            unsafe void GetFragmentMaterial(MaterialFace face, MaterialParameter pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFragmentMaterialfvSGIX((MaterialFace)face, (MaterialParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialfvSGIX")]
            public static 
            void GetFragmentMaterial(MaterialFace face, MaterialParameter pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetFragmentMaterialfvSGIX((MaterialFace)face, (MaterialParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialivSGIX")]
            public static 
            unsafe void GetFragmentMaterial(MaterialFace face, MaterialParameter pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFragmentMaterialivSGIX((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialivSGIX")]
            public static 
            void GetFragmentMaterial(MaterialFace face, MaterialParameter pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFragmentMaterialivSGIX((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialivSGIX")]
            public static 
            void GetFragmentMaterial(MaterialFace face, MaterialParameter pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFragmentMaterialivSGIX((MaterialFace)face, (MaterialParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glGetInstrumentsSGIX")]
            public static 
            Int32 GetInstruments()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetInstrumentsSGIX();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            void GetListParameter(Int32 list, ListParameterName pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            unsafe void GetListParameter(Int32 list, ListParameterName pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            void GetListParameter(Int32 list, ListParameterName pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            void GetListParameter(UInt32 list, ListParameterName pname, [Out] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            unsafe void GetListParameter(UInt32 list, ListParameterName pname, [Out] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            void GetListParameter(UInt32 list, ListParameterName pname, [Out] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            unsafe void GetListParameter(Int32 list, ListParameterName pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            void GetListParameter(Int32 list, ListParameterName pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            void GetListParameter(Int32 list, ListParameterName pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            unsafe void GetListParameter(UInt32 list, ListParameterName pname, [Out] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            void GetListParameter(UInt32 list, ListParameterName pname, [Out] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            void GetListParameter(UInt32 list, ListParameterName pname, [Out] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixIglooInterface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface<T1>(All pname, [In, Out] ref T1 @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glIglooInterfaceSGIX((All)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixIglooInterface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface<T1>(All pname, [In, Out] T1[,,] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glIglooInterfaceSGIX((All)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixIglooInterface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface<T1>(All pname, [In, Out] T1[,] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glIglooInterfaceSGIX((All)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixIglooInterface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface<T1>(All pname, [In, Out] T1[] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glIglooInterfaceSGIX((All)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixIglooInterface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface(All pname, IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIglooInterfaceSGIX((All)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glInstrumentsBufferSGIX")]
            public static 
            unsafe void InstrumentsBuffer(Int32 size, [Out] Int32* buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glInstrumentsBufferSGIX((Int32)size, (Int32*)buffer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glInstrumentsBufferSGIX")]
            public static 
            void InstrumentsBuffer(Int32 size, [Out] Int32[] buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* buffer_ptr = buffer)
                    {
                        Delegates.glInstrumentsBufferSGIX((Int32)size, (Int32*)buffer_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glInstrumentsBufferSGIX")]
            public static 
            void InstrumentsBuffer(Int32 size, [Out] out Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* buffer_ptr = &buffer)
                    {
                        Delegates.glInstrumentsBufferSGIX((Int32)size, (Int32*)buffer_ptr);
                        buffer = *buffer_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glIsAsyncMarkerSGIX")]
            public static 
            bool IsAsyncMarker(Int32 marker)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsAsyncMarkerSGIX((UInt32)marker);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glIsAsyncMarkerSGIX")]
            public static 
            bool IsAsyncMarker(UInt32 marker)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsAsyncMarkerSGIX((UInt32)marker);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixFragmentLighting", Version = "1.0", EntryPoint = "glLightEnviSGIX")]
            public static 
            void LightEnv(SgixFragmentLighting pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLightEnviSGIX((SgixFragmentLighting)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterfSGIX")]
            public static 
            void ListParameter(Int32 list, ListParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterfSGIX((UInt32)list, (ListParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterfSGIX")]
            public static 
            void ListParameter(UInt32 list, ListParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterfSGIX((UInt32)list, (ListParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterfvSGIX")]
            public static 
            unsafe void ListParameter(Int32 list, ListParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterfvSGIX")]
            public static 
            void ListParameter(Int32 list, ListParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterfvSGIX")]
            public static 
            unsafe void ListParameter(UInt32 list, ListParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterfvSGIX")]
            public static 
            void ListParameter(UInt32 list, ListParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glListParameterfvSGIX((UInt32)list, (ListParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameteriSGIX")]
            public static 
            void ListParameter(Int32 list, ListParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameteriSGIX((UInt32)list, (ListParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameteriSGIX")]
            public static 
            void ListParameter(UInt32 list, ListParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameteriSGIX((UInt32)list, (ListParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterivSGIX")]
            public static 
            unsafe void ListParameter(Int32 list, ListParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterivSGIX")]
            public static 
            void ListParameter(Int32 list, ListParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterivSGIX")]
            public static 
            unsafe void ListParameter(UInt32 list, ListParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixListPriority", Version = "1.0", EntryPoint = "glListParameterivSGIX")]
            public static 
            void ListParameter(UInt32 list, ListParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glListParameterivSGIX((UInt32)list, (ListParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glLoadIdentityDeformationMapSGIX")]
            public static 
            void LoadIdentityDeformationMap(Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadIdentityDeformationMapSGIX((UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixPolynomialFfd", Version = "1.0", EntryPoint = "glLoadIdentityDeformationMapSGIX")]
            public static 
            void LoadIdentityDeformationMap(UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadIdentityDeformationMapSGIX((UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixPixelTexture", Version = "1.0", EntryPoint = "glPixelTexGenSGIX")]
            public static 
            void PixelTexGen(SgixPixelTexture mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenSGIX((SgixPixelTexture)mode);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glPollAsyncSGIX")]
            public static 
            unsafe Int32 PollAsync([Out] Int32* markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glPollAsyncSGIX((UInt32*)markerp);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glPollAsyncSGIX")]
            public static 
            Int32 PollAsync([Out] out Int32 markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* markerp_ptr = &markerp)
                    {
                        Int32 retval = Delegates.glPollAsyncSGIX((UInt32*)markerp_ptr);
                        markerp = *markerp_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glPollAsyncSGIX")]
            public static 
            Int32 PollAsync([Out] out UInt32 markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* markerp_ptr = &markerp)
                    {
                        Int32 retval = Delegates.glPollAsyncSGIX((UInt32*)markerp_ptr);
                        markerp = *markerp_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixAsync", Version = "1.0", EntryPoint = "glPollAsyncSGIX")]
            public static 
            unsafe Int32 PollAsync([Out] UInt32* markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glPollAsyncSGIX((UInt32*)markerp);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glPollInstrumentsSGIX")]
            public static 
            unsafe Int32 PollInstruments([Out] Int32* marker_p)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glPollInstrumentsSGIX((Int32*)marker_p);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glPollInstrumentsSGIX")]
            public static 
            Int32 PollInstruments([Out] out Int32 marker_p)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* marker_p_ptr = &marker_p)
                    {
                        Int32 retval = Delegates.glPollInstrumentsSGIX((Int32*)marker_p_ptr);
                        marker_p = *marker_p_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glReadInstrumentsSGIX")]
            public static 
            void ReadInstruments(Int32 marker)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReadInstrumentsSGIX((Int32)marker);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixReferencePlane", Version = "1.0", EntryPoint = "glReferencePlaneSGIX")]
            public static 
            unsafe void ReferencePlane(Double* equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReferencePlaneSGIX((Double*)equation);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixReferencePlane", Version = "1.0", EntryPoint = "glReferencePlaneSGIX")]
            public static 
            void ReferencePlane(Double[] equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* equation_ptr = equation)
                    {
                        Delegates.glReferencePlaneSGIX((Double*)equation_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixReferencePlane", Version = "1.0", EntryPoint = "glReferencePlaneSGIX")]
            public static 
            void ReferencePlane(ref Double equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* equation_ptr = &equation)
                    {
                        Delegates.glReferencePlaneSGIX((Double*)equation_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixSprite", Version = "1.0", EntryPoint = "glSpriteParameterfSGIX")]
            public static 
            void SpriteParameter(SgixSprite pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSpriteParameterfSGIX((SgixSprite)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixSprite", Version = "1.0", EntryPoint = "glSpriteParameterfvSGIX")]
            public static 
            unsafe void SpriteParameter(SgixSprite pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSpriteParameterfvSGIX((SgixSprite)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixSprite", Version = "1.0", EntryPoint = "glSpriteParameterfvSGIX")]
            public static 
            void SpriteParameter(SgixSprite pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glSpriteParameterfvSGIX((SgixSprite)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixSprite", Version = "1.0", EntryPoint = "glSpriteParameteriSGIX")]
            public static 
            void SpriteParameter(SgixSprite pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSpriteParameteriSGIX((SgixSprite)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SgixSprite", Version = "1.0", EntryPoint = "glSpriteParameterivSGIX")]
            public static 
            unsafe void SpriteParameter(SgixSprite pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSpriteParameterivSGIX((SgixSprite)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixSprite", Version = "1.0", EntryPoint = "glSpriteParameterivSGIX")]
            public static 
            void SpriteParameter(SgixSprite pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glSpriteParameterivSGIX((SgixSprite)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glStartInstrumentsSGIX")]
            public static 
            void StartInstruments()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStartInstrumentsSGIX();
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixInstruments", Version = "1.0", EntryPoint = "glStopInstrumentsSGIX")]
            public static 
            void StopInstruments(Int32 marker)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStopInstrumentsSGIX((Int32)marker);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SgixTagSampleBuffer", Version = "1.0", EntryPoint = "glTagSampleBufferSGIX")]
            public static 
            void TagSampleBuffer()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTagSampleBufferSGIX();
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Sun
        {
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor3fVertex3fSUN")]
            public static 
            void Color3fVertex3(Single r, Single g, Single b, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor3fVertex3fSUN((Single)r, (Single)g, (Single)b, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor3fVertex3fvSUN")]
            public static 
            void Color3fVertex3(ref Single c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glColor3fVertex3fvSUN((Single*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor3fVertex3fvSUN")]
            public static 
            unsafe void Color3fVertex3(Single* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor3fVertex3fvSUN((Single*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor3fVertex3fvSUN")]
            public static 
            void Color3fVertex3(Single[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* c_ptr = c)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glColor3fVertex3fvSUN((Single*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4fNormal3fVertex3fSUN")]
            public static 
            void Color4fNormal3fVertex3(Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4fNormal3fVertex3fSUN((Single)r, (Single)g, (Single)b, (Single)a, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4fNormal3fVertex3fvSUN")]
            public static 
            void Color4fNormal3fVertex3(ref Single c, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* c_ptr = &c)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glColor4fNormal3fVertex3fvSUN((Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void Color4fNormal3fVertex3(Single* c, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4fNormal3fVertex3fvSUN((Single*)c, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4fNormal3fVertex3fvSUN")]
            public static 
            void Color4fNormal3fVertex3(Single[] c, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* c_ptr = c)
                    fixed (Single* n_ptr = n)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glColor4fNormal3fVertex3fvSUN((Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4ubVertex2fSUN")]
            public static 
            void Color4ubVertex2(Byte r, Byte g, Byte b, Byte a, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4ubVertex2fSUN((Byte)r, (Byte)g, (Byte)b, (Byte)a, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4ubVertex2fvSUN")]
            public static 
            unsafe void Color4ubVertex2(Byte* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4ubVertex2fvSUN((Byte*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4ubVertex2fvSUN")]
            public static 
            void Color4ubVertex2(Byte[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* c_ptr = c)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glColor4ubVertex2fvSUN((Byte*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4ubVertex2fvSUN")]
            public static 
            void Color4ubVertex2(ref Byte c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glColor4ubVertex2fvSUN((Byte*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4ubVertex3fSUN")]
            public static 
            void Color4ubVertex3(Byte r, Byte g, Byte b, Byte a, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4ubVertex3fSUN((Byte)r, (Byte)g, (Byte)b, (Byte)a, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4ubVertex3fvSUN")]
            public static 
            unsafe void Color4ubVertex3(Byte* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4ubVertex3fvSUN((Byte*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4ubVertex3fvSUN")]
            public static 
            void Color4ubVertex3(Byte[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* c_ptr = c)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glColor4ubVertex3fvSUN((Byte*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glColor4ubVertex3fvSUN")]
            public static 
            void Color4ubVertex3(ref Byte c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glColor4ubVertex3fvSUN((Byte*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunMeshArray", Version = "1.1", EntryPoint = "glDrawMeshArraysSUN")]
            public static 
            void DrawMeshArrays(BeginMode mode, Int32 first, Int32 count, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawMeshArraysSUN((BeginMode)mode, (Int32)first, (Int32)count, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactorbSUN")]
            public static 
            void GlobalAlphaFactor(SByte factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactorbSUN((SByte)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactordSUN")]
            public static 
            void GlobalAlphaFactor(Double factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactordSUN((Double)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactorfSUN")]
            public static 
            void GlobalAlphaFactor(Single factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactorfSUN((Single)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactoriSUN")]
            public static 
            void GlobalAlphaFactor(Int32 factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactoriSUN((Int32)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactorsSUN")]
            public static 
            void GlobalAlphaFactors(Int16 factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactorsSUN((Int16)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactorubSUN")]
            public static 
            void GlobalAlphaFactor(Byte factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactorubSUN((Byte)factor);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactoruiSUN")]
            public static 
            void GlobalAlphaFactor(UInt32 factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactoruiSUN((UInt32)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactorusSUN")]
            public static 
            void GlobalAlphaFactor(Int16 factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactorusSUN((UInt16)factor);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunGlobalAlpha", Version = "1.1", EntryPoint = "glGlobalAlphaFactorusSUN")]
            public static 
            void GlobalAlphaFactor(UInt16 factor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGlobalAlphaFactorusSUN((UInt16)factor);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glNormal3fVertex3fSUN")]
            public static 
            void Normal3fVertex3(Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormal3fVertex3fSUN((Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glNormal3fVertex3fvSUN")]
            public static 
            void Normal3fVertex3(ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glNormal3fVertex3fvSUN((Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glNormal3fVertex3fvSUN")]
            public static 
            unsafe void Normal3fVertex3(Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormal3fVertex3fvSUN((Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glNormal3fVertex3fvSUN")]
            public static 
            void Normal3fVertex3(Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* n_ptr = n)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glNormal3fVertex3fvSUN((Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer<T2>(SunTriangleList type, Int32 stride, [In, Out] ref T2 pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glReplacementCodePointerSUN((SunTriangleList)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer<T2>(SunTriangleList type, Int32 stride, [In, Out] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glReplacementCodePointerSUN((SunTriangleList)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer<T2>(SunTriangleList type, Int32 stride, [In, Out] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glReplacementCodePointerSUN((SunTriangleList)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer<T2>(SunTriangleList type, Int32 stride, [In, Out] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glReplacementCodePointerSUN((SunTriangleList)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer(SunTriangleList type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodePointerSUN((SunTriangleList)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeubSUN")]
            public static 
            void ReplacementCode(Byte code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeubSUN((Byte)code);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeubvSUN")]
            public static 
            unsafe void ReplacementCode(Byte* code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeubvSUN((Byte*)code);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeubvSUN")]
            public static 
            void ReplacementCode(Byte[] code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* code_ptr = code)
                    {
                        Delegates.glReplacementCodeubvSUN((Byte*)code_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiColor3fVertex3(Int32 rc, Single r, Single g, Single b, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor3fVertex3fSUN((UInt32)rc, (Single)r, (Single)g, (Single)b, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiColor3fVertex3(UInt32 rc, Single r, Single g, Single b, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor3fVertex3fSUN((UInt32)rc, (Single)r, (Single)g, (Single)b, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor3fVertex3(Int32* rc, Single* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor3fVertex3fvSUN((UInt32*)rc, (Single*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor3fVertex3(Int32* rc, Single[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* c_ptr = c)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiColor3fVertex3fvSUN((UInt32*)rc, (Single*)c_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor3fVertex3(ref Int32 rc, ref Single c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* rc_ptr = &rc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiColor3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor3fVertex3(ref UInt32 rc, ref Single c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* rc_ptr = &rc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiColor3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor3fVertex3(UInt32* rc, Single* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor3fVertex3fvSUN((UInt32*)rc, (Single*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor3fVertex3(UInt32* rc, Single[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* c_ptr = c)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiColor3fVertex3fvSUN((UInt32*)rc, (Single*)c_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiColor4fNormal3fVertex3(Int32 rc, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor4fNormal3fVertex3fSUN((UInt32)rc, (Single)r, (Single)g, (Single)b, (Single)a, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiColor4fNormal3fVertex3(UInt32 rc, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor4fNormal3fVertex3fSUN((UInt32)rc, (Single)r, (Single)g, (Single)b, (Single)a, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor4fNormal3fVertex3(Int32* rc, Single* c, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor4fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)c, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor4fNormal3fVertex3(Int32* rc, Single[] c, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* c_ptr = c)
                fixed (Single* n_ptr = n)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiColor4fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor4fNormal3fVertex3(ref Int32 rc, ref Single c, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* rc_ptr = &rc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiColor4fNormal3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor4fNormal3fVertex3(ref UInt32 rc, ref Single c, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* rc_ptr = &rc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiColor4fNormal3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor4fNormal3fVertex3(UInt32* rc, Single* c, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor4fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)c, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor4fNormal3fVertex3(UInt32* rc, Single[] c, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* c_ptr = c)
                fixed (Single* n_ptr = n)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiColor4fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fSUN")]
            public static 
            void ReplacementCodeuiColor4ubVertex3(Int32 rc, Byte r, Byte g, Byte b, Byte a, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor4ubVertex3fSUN((UInt32)rc, (Byte)r, (Byte)g, (Byte)b, (Byte)a, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fSUN")]
            public static 
            void ReplacementCodeuiColor4ubVertex3(UInt32 rc, Byte r, Byte g, Byte b, Byte a, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor4ubVertex3fSUN((UInt32)rc, (Byte)r, (Byte)g, (Byte)b, (Byte)a, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor4ubVertex3(Int32* rc, Byte* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor4ubVertex3fvSUN((UInt32*)rc, (Byte*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor4ubVertex3(Int32* rc, Byte[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Byte* c_ptr = c)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiColor4ubVertex3fvSUN((UInt32*)rc, (Byte*)c_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor4ubVertex3(ref Int32 rc, ref Byte c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* rc_ptr = &rc)
                    fixed (Byte* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiColor4ubVertex3fvSUN((UInt32*)rc_ptr, (Byte*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor4ubVertex3(ref UInt32 rc, ref Byte c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* rc_ptr = &rc)
                    fixed (Byte* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiColor4ubVertex3fvSUN((UInt32*)rc_ptr, (Byte*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor4ubVertex3(UInt32* rc, Byte* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiColor4ubVertex3fvSUN((UInt32*)rc, (Byte*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiColor4ubVertex3(UInt32* rc, Byte[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Byte* c_ptr = c)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiColor4ubVertex3fvSUN((UInt32*)rc, (Byte*)c_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiNormal3fVertex3(Int32 rc, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiNormal3fVertex3fSUN((UInt32)rc, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiNormal3fVertex3(UInt32 rc, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiNormal3fVertex3fSUN((UInt32)rc, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiNormal3fVertex3(Int32* rc, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiNormal3fVertex3fvSUN((UInt32*)rc, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiNormal3fVertex3(Int32* rc, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* n_ptr = n)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiNormal3fVertex3fvSUN((UInt32*)rc, (Single*)n_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiNormal3fVertex3(ref Int32 rc, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* rc_ptr = &rc)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiNormal3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiNormal3fVertex3(ref UInt32 rc, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* rc_ptr = &rc)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiNormal3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiNormal3fVertex3(UInt32* rc, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiNormal3fVertex3fvSUN((UInt32*)rc, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiNormal3fVertex3(UInt32* rc, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* n_ptr = n)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiNormal3fVertex3fvSUN((UInt32*)rc, (Single*)n_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeuiSUN")]
            public static 
            void ReplacementCode(Int32 code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiSUN((UInt32)code);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeuiSUN")]
            public static 
            void ReplacementCode(UInt32 code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiSUN((UInt32)code);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(Int32 rc, Single s, Single t, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN((UInt32)rc, (Single)s, (Single)t, (Single)r, (Single)g, (Single)b, (Single)a, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(UInt32 rc, Single s, Single t, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN((UInt32)rc, (Single)s, (Single)t, (Single)r, (Single)g, (Single)b, (Single)a, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(Int32* rc, Single* tc, Single* c, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)tc, (Single*)c, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(Int32* rc, Single[] tc, Single[] c, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* tc_ptr = tc)
                fixed (Single* c_ptr = c)
                fixed (Single* n_ptr = n)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)tc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(ref Int32 rc, ref Single tc, ref Single c, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* rc_ptr = &rc)
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)tc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(ref UInt32 rc, ref Single tc, ref Single c, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* rc_ptr = &rc)
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)tc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(UInt32* rc, Single* tc, Single* c, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)tc, (Single*)c, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(UInt32* rc, Single[] tc, Single[] c, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* tc_ptr = tc)
                fixed (Single* c_ptr = c)
                fixed (Single* n_ptr = n)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)tc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fNormal3fVertex3(Int32 rc, Single s, Single t, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN((UInt32)rc, (Single)s, (Single)t, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fNormal3fVertex3(UInt32 rc, Single s, Single t, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN((UInt32)rc, (Single)s, (Single)t, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fNormal3fVertex3(Int32* rc, Single* tc, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)tc, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fNormal3fVertex3(Int32* rc, Single[] tc, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* tc_ptr = tc)
                fixed (Single* n_ptr = n)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)tc_ptr, (Single*)n_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fNormal3fVertex3(ref Int32 rc, ref Single tc, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* rc_ptr = &rc)
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)tc_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fNormal3fVertex3(ref UInt32 rc, ref Single tc, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* rc_ptr = &rc)
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN((UInt32*)rc_ptr, (Single*)tc_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fNormal3fVertex3(UInt32* rc, Single* tc, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)tc, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fNormal3fVertex3(UInt32* rc, Single[] tc, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* tc_ptr = tc)
                fixed (Single* n_ptr = n)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN((UInt32*)rc, (Single*)tc_ptr, (Single*)n_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fVertex3(Int32 rc, Single s, Single t, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fVertex3fSUN((UInt32)rc, (Single)s, (Single)t, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fVertex3(UInt32 rc, Single s, Single t, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fVertex3fSUN((UInt32)rc, (Single)s, (Single)t, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fVertex3(Int32* rc, Single* tc, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fVertex3fvSUN((UInt32*)rc, (Single*)tc, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fVertex3(Int32* rc, Single[] tc, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* tc_ptr = tc)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiTexCoord2fVertex3fvSUN((UInt32*)rc, (Single*)tc_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fVertex3(ref Int32 rc, ref Single tc, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* rc_ptr = &rc)
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiTexCoord2fVertex3fvSUN((UInt32*)rc_ptr, (Single*)tc_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fVertex3(ref UInt32 rc, ref Single tc, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* rc_ptr = &rc)
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiTexCoord2fVertex3fvSUN((UInt32*)rc_ptr, (Single*)tc_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fVertex3(UInt32* rc, Single* tc, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiTexCoord2fVertex3fvSUN((UInt32*)rc, (Single*)tc, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiTexCoord2fVertex3(UInt32* rc, Single[] tc, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* tc_ptr = tc)
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiTexCoord2fVertex3fvSUN((UInt32*)rc, (Single*)tc_ptr, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fSUN")]
            public static 
            void ReplacementCodeuiVertex3(Int32 rc, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiVertex3fSUN((UInt32)rc, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fSUN")]
            public static 
            void ReplacementCodeuiVertex3(UInt32 rc, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiVertex3fSUN((UInt32)rc, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiVertex3(Int32* rc, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiVertex3fvSUN((UInt32*)rc, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiVertex3(Int32* rc, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiVertex3fvSUN((UInt32*)rc, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
            public static 
            void ReplacementCodeuiVertex3(ref Int32 rc, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* rc_ptr = &rc)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiVertex3fvSUN((UInt32*)rc_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
            public static 
            void ReplacementCodeuiVertex3(ref UInt32 rc, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* rc_ptr = &rc)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glReplacementCodeuiVertex3fvSUN((UInt32*)rc_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiVertex3(UInt32* rc, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuiVertex3fvSUN((UInt32*)rc, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
            public static 
            unsafe void ReplacementCodeuiVertex3(UInt32* rc, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                fixed (Single* v_ptr = v)
                {
                    Delegates.glReplacementCodeuiVertex3fvSUN((UInt32*)rc, (Single*)v_ptr);
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeuivSUN")]
            public static 
            unsafe void ReplacementCode(Int32* code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuivSUN((UInt32*)code);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeuivSUN")]
            public static 
            void ReplacementCode(Int32[] code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* code_ptr = code)
                    {
                        Delegates.glReplacementCodeuivSUN((UInt32*)code_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeuivSUN")]
            public static 
            unsafe void ReplacementCode(UInt32* code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeuivSUN((UInt32*)code);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeuivSUN")]
            public static 
            void ReplacementCode(UInt32[] code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* code_ptr = code)
                    {
                        Delegates.glReplacementCodeuivSUN((UInt32*)code_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeusSUN")]
            public static 
            void ReplacementCode(Int16 code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeusSUN((UInt16)code);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeusSUN")]
            public static 
            void ReplacementCode(UInt16 code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeusSUN((UInt16)code);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeusvSUN")]
            public static 
            unsafe void ReplacementCode(Int16* code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeusvSUN((UInt16*)code);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeusvSUN")]
            public static 
            void ReplacementCode(Int16[] code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* code_ptr = code)
                    {
                        Delegates.glReplacementCodeusvSUN((UInt16*)code_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeusvSUN")]
            public static 
            unsafe void ReplacementCode(UInt16* code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodeusvSUN((UInt16*)code);
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunTriangleList", Version = "1.1", EntryPoint = "glReplacementCodeusvSUN")]
            public static 
            void ReplacementCode(UInt16[] code)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* code_ptr = code)
                    {
                        Delegates.glReplacementCodeusvSUN((UInt16*)code_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor3fVertex3fSUN")]
            public static 
            void TexCoord2fColor3fVertex3(Single s, Single t, Single r, Single g, Single b, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fColor3fVertex3fSUN((Single)s, (Single)t, (Single)r, (Single)g, (Single)b, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor3fVertex3fvSUN")]
            public static 
            void TexCoord2fColor3fVertex3(ref Single tc, ref Single c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glTexCoord2fColor3fVertex3fvSUN((Single*)tc_ptr, (Single*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor3fVertex3fvSUN")]
            public static 
            unsafe void TexCoord2fColor3fVertex3(Single* tc, Single* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fColor3fVertex3fvSUN((Single*)tc, (Single*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor3fVertex3fvSUN")]
            public static 
            void TexCoord2fColor3fVertex3(Single[] tc, Single[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = tc)
                    fixed (Single* c_ptr = c)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glTexCoord2fColor3fVertex3fvSUN((Single*)tc_ptr, (Single*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor4fNormal3fVertex3fSUN")]
            public static 
            void TexCoord2fColor4fNormal3fVertex3(Single s, Single t, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fColor4fNormal3fVertex3fSUN((Single)s, (Single)t, (Single)r, (Single)g, (Single)b, (Single)a, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            void TexCoord2fColor4fNormal3fVertex3(ref Single tc, ref Single c, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glTexCoord2fColor4fNormal3fVertex3fvSUN((Single*)tc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            unsafe void TexCoord2fColor4fNormal3fVertex3(Single* tc, Single* c, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fColor4fNormal3fVertex3fvSUN((Single*)tc, (Single*)c, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            void TexCoord2fColor4fNormal3fVertex3(Single[] tc, Single[] c, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = tc)
                    fixed (Single* c_ptr = c)
                    fixed (Single* n_ptr = n)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glTexCoord2fColor4fNormal3fVertex3fvSUN((Single*)tc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor4ubVertex3fSUN")]
            public static 
            void TexCoord2fColor4ubVertex3(Single s, Single t, Byte r, Byte g, Byte b, Byte a, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fColor4ubVertex3fSUN((Single)s, (Single)t, (Byte)r, (Byte)g, (Byte)b, (Byte)a, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor4ubVertex3fvSUN")]
            public static 
            void TexCoord2fColor4ubVertex3(ref Single tc, ref Byte c, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = &tc)
                    fixed (Byte* c_ptr = &c)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glTexCoord2fColor4ubVertex3fvSUN((Single*)tc_ptr, (Byte*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor4ubVertex3fvSUN")]
            public static 
            unsafe void TexCoord2fColor4ubVertex3(Single* tc, Byte* c, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fColor4ubVertex3fvSUN((Single*)tc, (Byte*)c, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fColor4ubVertex3fvSUN")]
            public static 
            void TexCoord2fColor4ubVertex3(Single[] tc, Byte[] c, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = tc)
                    fixed (Byte* c_ptr = c)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glTexCoord2fColor4ubVertex3fvSUN((Single*)tc_ptr, (Byte*)c_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fNormal3fVertex3fSUN")]
            public static 
            void TexCoord2fNormal3fVertex3(Single s, Single t, Single nx, Single ny, Single nz, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fNormal3fVertex3fSUN((Single)s, (Single)t, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            void TexCoord2fNormal3fVertex3(ref Single tc, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glTexCoord2fNormal3fVertex3fvSUN((Single*)tc_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            unsafe void TexCoord2fNormal3fVertex3(Single* tc, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fNormal3fVertex3fvSUN((Single*)tc, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            void TexCoord2fNormal3fVertex3(Single[] tc, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = tc)
                    fixed (Single* n_ptr = n)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glTexCoord2fNormal3fVertex3fvSUN((Single*)tc_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fVertex3fSUN")]
            public static 
            void TexCoord2fVertex3(Single s, Single t, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fVertex3fSUN((Single)s, (Single)t, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fVertex3fvSUN")]
            public static 
            void TexCoord2fVertex3(ref Single tc, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glTexCoord2fVertex3fvSUN((Single*)tc_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fVertex3fvSUN")]
            public static 
            unsafe void TexCoord2fVertex3(Single* tc, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2fVertex3fvSUN((Single*)tc, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord2fVertex3fvSUN")]
            public static 
            void TexCoord2fVertex3(Single[] tc, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = tc)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glTexCoord2fVertex3fvSUN((Single*)tc_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord4fColor4fNormal3fVertex4fSUN")]
            public static 
            void TexCoord4fColor4fNormal3fVertex4(Single s, Single t, Single p, Single q, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4fColor4fNormal3fVertex4fSUN((Single)s, (Single)t, (Single)p, (Single)q, (Single)r, (Single)g, (Single)b, (Single)a, (Single)nx, (Single)ny, (Single)nz, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord4fColor4fNormal3fVertex4fvSUN")]
            public static 
            void TexCoord4fColor4fNormal3fVertex4(ref Single tc, ref Single c, ref Single n, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* c_ptr = &c)
                    fixed (Single* n_ptr = &n)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glTexCoord4fColor4fNormal3fVertex4fvSUN((Single*)tc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord4fColor4fNormal3fVertex4fvSUN")]
            public static 
            unsafe void TexCoord4fColor4fNormal3fVertex4(Single* tc, Single* c, Single* n, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4fColor4fNormal3fVertex4fvSUN((Single*)tc, (Single*)c, (Single*)n, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord4fColor4fNormal3fVertex4fvSUN")]
            public static 
            void TexCoord4fColor4fNormal3fVertex4(Single[] tc, Single[] c, Single[] n, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = tc)
                    fixed (Single* c_ptr = c)
                    fixed (Single* n_ptr = n)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glTexCoord4fColor4fNormal3fVertex4fvSUN((Single*)tc_ptr, (Single*)c_ptr, (Single*)n_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord4fVertex4fSUN")]
            public static 
            void TexCoord4fVertex4(Single s, Single t, Single p, Single q, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4fVertex4fSUN((Single)s, (Single)t, (Single)p, (Single)q, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord4fVertex4fvSUN")]
            public static 
            void TexCoord4fVertex4(ref Single tc, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = &tc)
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glTexCoord4fVertex4fvSUN((Single*)tc_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord4fVertex4fvSUN")]
            public static 
            unsafe void TexCoord4fVertex4(Single* tc, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4fVertex4fvSUN((Single*)tc, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            [AutoGenerated(Category = "SunVertex", Version = "1.1", EntryPoint = "glTexCoord4fVertex4fvSUN")]
            public static 
            void TexCoord4fVertex4(Single[] tc, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* tc_ptr = tc)
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glTexCoord4fVertex4fvSUN((Single*)tc_ptr, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Sunx
        {
            [AutoGenerated(Category = "SunxConstantData", Version = "1.1", EntryPoint = "glFinishTextureSUNX")]
            public static 
            void FinishTexture()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinishTextureSUNX();
                #if DEBUG
                }
                #endif
            }

        }

    }
}
